Я новичок в xcode и пытаюсь понять, как работает UITabBarController. Я искал везде и не мог найти прямого решения этого вопроса. В большинстве примеров / учебных пособий, которые я вижу, UITabBarController определяется в AppDelegate, а затем, как только вы запустите приложение, вы сразу увидите панель вкладок. В моем приложении я хочу сначала показать экран приветствия, а затем, как только вы нажмете «Enter», вы попадете в представление панели вкладок. Итак, идеальная структура моих объектов будет следующей:
MyProjectAppDelegate -> MyProjectViewController -> FirstView / SecondView
Насколько я понимаю, в MyProjectAppDelegate с этой структурой не должно быть ничего связанного с панелью вкладок. Я попытался взглянуть на некоторые примеры, когда UITabBarController объявлен в AppDelegate и делает то же самое в MyProjectViewController, но ничего не происходит.
Например, я сделал это в моем MyProjectViewController внутри IBAction, который подключен к кнопке «Enter» на моем экране приветствия:
- (IBAction) EnterApp {
[window addSubview:tabBarController.view];
tabBarController = [[UITabBarController alloc] init];
tabBarController.delegate=self;
FirstView* first = [[FirstView alloc] init];
UINavigationController *firstNav = [[UINavigationController alloc] initWithRootViewController:first];
SecondView* second = [[SecondView alloc] init];
UINavigationController *secondNav = [[UINavigationController alloc] initWithRootViewController:second];
NSArray* controllers = [NSArray arrayWithObjects:firstNav,secondNav, nil];
tabBarController.viewControllers = controllers;
[window addSubview:tabBarController.view];
}
Опять же, это ничего не сделало, когда я нажал на кнопку «Ввод», даже если он выполняет работу в примере, где я его взял (где он находится внутри AppDelegate)
Я также попробовал это на моем MyProjectViewController, где панель вкладок отображалась в первом / втором представлении, но без возможности ее настройки (только пустые черные полосы, на которых ничего нет, и не знаю, где их настроить):
- (IBAction) EnterApp {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController *viewController1 = [[FirstView alloc] initWithNibName:@"FirstView" bundle:nil];
UIViewController *viewController2 = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
}
Что здесь пошло не так и каким должен быть правильный путь? Быстрый пример будет высоко оценен.
Спасибо!