Если вы используете раскадровки, просто добавьте контроллер панели вкладок в раскадровку. Затем выберите одну из дочерних сцен панели вкладок, а затем выберите «Вставить вход» - «Контроллер навигации» из меню «Редактор» Xcode. Если вы повторите этот процесс для любых вкладок, которые вы хотите иметь навигационные контроллеры. В этом снимке экрана я добавил контроллер навигации на первую и третью вкладки, но не на второй.
Надеюсь, это иллюстрирует идею.
Если вы решили сделать это с крупка, самый простой способ, чтобы начать это создать новый проект с шаблоном Вкладки Application (и, очевидно, на следующем экране, снимите флажок " Использование раскадровки "):
Затем откройте файл .m приложение делегата и заменить по умолчанию didFinishLaunchingWithOptions
, который выглядит как:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[viewController1, viewController2];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
с одним, который создает отдельный навигационный контроллер для каждой вкладки, для которого вы хотите панель навигации (в данном случае, я добавляю его только первый, но он иллюстрирует идею):
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[navigationController1, viewController2]; // was @[viewController1, viewController2];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
Это относительно простой способ запуска приложения с вкладкой на основе NIB. Затем вы можете настроить его.
Лично я изо всех сил пытаюсь представить, почему кто-то будет использовать NIB, а не раскадровки (если вы не пытаетесь поддержать iOS 4), но, надеюсь, это иллюстрирует обе техники.
Вы действительно должны прочитать два документа, которые связаны с верхней частью ссылки класса UIViewController. Они помогут вам многое. – rdelmar