Я пытаюсь реализовать собственную схему URL-адресов, где один конкретный URL-адрес (myapp: // article) открывает представление статьи. У меня нет никакого успеха.URL-адрес схемы не открывается
Обычно приложение открывает LoginViewController
, как определено в раскадровке. Для схемы URL Я делаю это:
-(BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation{
if ([[PocketAPI sharedAPI] handleOpenURL:url]) {
NSLog(@"Login complete!");
return YES;
} else {
NSLog(@"url recieved: %@", url);
NSLog(@"scheme: %@", [url scheme]);
NSLog(@"query string: %@", [url query]);
NSLog(@"host: %@", [url host]);
if ([[url host] isEqualToString: @"article"]) {
Stream *stream = [[Stream alloc] initWithDictionary:data];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
ArticleViewController *articleViewController = [storyboard instantiateViewControllerWithIdentifier:@"ArticleViewController"];
articleViewController.stream = stream;
[self.window makeKeyAndVisible];
[self.window.rootViewController presentViewController:articleViewController animated:YES completion:NULL];
return YES;
}
return YES;
}
}
я получаю Warning: Attempt to present <ArticleViewController: 0x79040cb0> on <LoginViewController: 0x7906f8c0> whose view is not in the window hierarchy!
Что я делаю неправильно?
Является ли текущий контроллер rootViewController (aka 'LoginViewController') единственным контроллером, представленным на экране? У него есть другие контроллеры представления, представленные сверху? –