Lancement de ViewController depuis AppDelegate
J'ai une URL personnalisée régime et je veux ouvrir un certain ViewController
qui n'est pas la racine quand je vais à cette URL. J'ai été en mesure de le faire et ce qui reste est de pousser cette ViewController
dans le navigationController
de la AppDelegate
où je gérer mon URL comme ceci :
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
if ([[url scheme] isEqualToString:@"njoftime"]) {
NSDictionary *getListingResponse = [[NSDictionary alloc]init];
getListingResponse = [Utils getListing:[url query]];;
if ([[getListingResponse objectForKey:@"status"] isEqualToString:@"success"]) {
ListingViewController *listingView = [[ListingViewController alloc]init];
[self.window.rootViewController.navigationController pushViewController:listingView animated:YES];
return YES;
}
mais il ne lance mon application, et non la ListingViewController
je veux lancer.
Une idée de comment je peux faire autrement ?
source d'informationauteur Elgert
Vous devez vous connecter pour publier un commentaire.
Question
De traiter avec les poussant et en sautant le viewControllers de AppDelegatevous devez utiliser
[UIApplication sharedApplication]
qui garde la trace de tous viewControllers, en commençant par la racine.Solution
À POUSSER ViewController de AppDelegate
À POP que ViewController vous avez juste présenté, vous devez utiliser ce code
Si votre utilisation de storyboard ensuite, vous pouvez utiliser les lignes ci-dessous pour pousser votre VC.
Mise à jour:-
Écrire ce code dans didFinishingWithLaunchingOptions
Pour Swift 3 version:
Si vous souhaitez faire un UIViewController, vous êtes probablement oublier d'init avec le NibName:
Votre AppDelegate.m devrait ressembler à ceci: