Как правильно настроить UINavigationController и добавить представления в стек
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self. window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
UINavigationController *navVC = [UINavigationController new];
UIStoryboard *mStoryboard = [UIStoryboard storyboardWithName:@"your storyboard name" bundle:nil];
ViewController *VC1 = [mStoryboard instantiateViewControllerWithIdentifier:@"VC"];
[navVC setViewControllers:[NSArray arrayWithObject:VC1] animated:NO];
[self. window setRootViewController:navVC];
[self. window makeKeyAndVisible];
return YES;
}
Теперь это создает navigationController, но когда я пытаюсь отобразить secondViewController, он отображает правильную панель навигации для этого вида, но вместо фактического вида я вижу черный фон. Добавление secondViewController в качестве подпредставления работает, но когда я сейчас пытаюсь отобразить третий, оно снова отображает правильную панель навигации с заданным заголовком для этого представления, но я все еще вижу представление secondViewController. Теперь мой вопрос, как мне добавить viewController к navigationController, чтобы они отображались правильно? я должен даже добавить их? Я прочитал ссылку на класс Apple, но там нет никакого кода.
1 ответ
Решение
Попробуй это:
self. window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
UIStoryboard *mStoryboard = [UIStoryboard storyboardWithName:@"your storyboard name" bundle:nil];
ViewController *VC1 = [mStoryboard instantiateViewControllerWithIdentifier:@"VC"];
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:VC1];
[self. window setRootViewController:navVC];
[self. window makeKeyAndVisible];
return YES;
Теперь внутри VC1 нажмите следующий контроллер представления в ваш стек с
// EDIT:
UIStoryboard *mStoryboard = [UIStoryboard storyboardWithName:@"your storyboard name" bundle:nil];
ViewController *vC2 = [mStoryboard instantiateViewControllerWithIdentifier:@"VC2"];
[self.navigationController pushViewController:vC2 animated:YES];