#ios #swift #storyboard
#iOS #swift #раскадровка
Вопрос:
В другом файле я создаю экземпляр моего контроллера представления из другой раскадровки и представляю его следующим образом:
let viewController:UIViewController = UIStoryboard(name: "UserProfile", bundle: nil).instantiateViewControllerWithIdentifier("profileID") as! ProfileViewController
self.presentViewController(viewController, animated: true, completion: nil)
В моей раскадровке у меня есть правильный идентификатор раскадровки, и я встроил свой контроллер представления в UINavigationController. Я также установил начальный контроллер представления на UINavigationController.
Почему она не отображается?
Ответ №1:
создайте контроллер объекта представления, затем добавьте к нему контроллер навигации, а затем представьте его :
let VC1 = self.storyboard!.instantiateViewControllerWithIdentifier("MyViewController") as! ViewController
let navController = UINavigationController(rootViewController: VC1) // Creating a navigation controller with VC1 at the root of the navigation stack.
self.presentViewController(navController, animated:true, completion: nil)
Комментарии:
1. Вы также можете сделать то же самое с помощью objective-c.
Ответ №2:
Итак, вы представляете контроллер представления (обратите внимание, это не контроллер навигации).
Что вы можете сделать:
-
Нажмите на контроллер представления
let viewController:UIViewController = UIStoryboard(name: "UserProfile", bundle: nil).instantiateViewControllerWithIdentifier("profileID") as! ProfileViewController [self.navigationController pushViewController:viewController animated:YES];
-
Представьте контроллер навигации
let viewController:UIViewController = UIStoryboard(name: "UserProfile", bundle: nil).instantiateViewControllerWithIdentifier("profileID") as! ProfileViewController let navigationController = UINavigationController(rootViewController: viewController) self.presentViewController(viewController, animated: true, completion: nil)
Ответ №3:
Для тех, кто все еще использует Objective-C:
UIStoryboard *sb = [UIStoryboard storyboardWithName: @"Storyboard" bundle: [NSBundle mainBundle]];
ViewController *vc = [sb instantiateInitialViewController];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController: vc];
[self presentViewController:nc animated:YES completion:nil];
Не забудьте нажать кнопку: