У меня есть UINavigationController в моей раскадровке и два viewControllers, которые выполняют следующие функции:Set RootViewController внутри класса UINavigationController
InitialViewController: это будет домашний экран приложения.
FirstTimeViewController: это экран, который появляется, когда пользователь открывает приложение в первый раз.
Мои UINavigationController имеет класс, которые имеют следующий код:
- (void)viewDidLoad {
[super viewDidLoad];
if ([[ReadPlist initWithPlist:@"Configuration.plist" key:@"initialConfiguration"] boolValue]){
FirstTimeViewController *firstTimeController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"firstTimeView"]; //or the homeController
[self.navigationController pushViewController:firstTimeController animated:NO];
}else{
InitialViewController *initialController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"initialView"]; //or the homeController
[self.navigationController pushViewController:initialController animated:NO];
}
}
В основном это код проверки .plist файл, если конкретное поле активно, если ДА означает, что приложение работает для первого время, в этом случае он вызывает соответствующий viewController.
Но этот код не работает, и я вижу NavigationController с черным видом. Все, что я хотел бы сделать, это то же самое, что мы делаем в построителе интерфейса, просто перетаскиваем строку из UINavigationController внутри UIViewController и устанавливаем как «Root View Controller», но в моем случае я пытаюсь сделать это программно.
Как я могу это сделать?
В текущей реализации вы pushViewController, что причина для кнопки возврата видна. Лучше установить навигацию rootViewController –