Я создал UITabbarController
как контроллер rooview приложения с UINavigationController
для UIViewController.
вот еще один пример: я использовал xibs для View Controllers.
AppDelegate.m
Я создаю имя метода: setupAppHome
#pragma mark - SETUP HOME
-(void) setupAppHome{
NSLog(@"set up the nano home");
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (_chatViewController == nil) {
_chatViewController = [[ChatViewController alloc] initWithNibName:@"ChatViewController" bundle:nil];
chatNav = [[UINavigationController alloc] initWithRootViewController:_chatViewController];
chatNav.tabBarItem.title=@"Chat";
chatNav.tabBarItem.image=[UIImage imageNamed:@"chat_icon.png"];
}
if (_callController == nil) {
_callController = [[CallViewController alloc] initWithNibName:@"CallViewController" bundle:nil];
callNav = [[UINavigationController alloc] initWithRootViewController:_callController];
callNav.tabBarItem.title=@"Call";
callNav.tabBarItem.image=[UIImage imageNamed:@"call_icon.png"];
}
if (_contanctsController == nil) {
_contanctsController = [[ContactsViewController alloc] initWithNibName:@"ContactsViewController" bundle:nil];
conNav = [[UINavigationController alloc] initWithRootViewController:_contanctsController];
conNav.tabBarItem.title=@"Contact";
conNav.tabBarItem.image=[UIImage imageNamed:@"contact_icon.png"];
}
if (_settingController == nil) {
_settingController = [[SettingViewController alloc] initWithNibName:@"SettingViewController" bundle:nil];
settingNav = [[UINavigationController alloc] initWithRootViewController:_settingController];
settingNav.tabBarItem.title=@"Setting";
settingNav.tabBarItem.image=[UIImage imageNamed:@"setting_icon.png"];
}
self.tabController = [[UITabBarController alloc] init];
NSMutableArray *controllers = [[NSMutableArray alloc] initWithCapacity:4];
[controllers addObject:chatNav];
[controllers addObject:callNav];
[controllers addObject:conNav];
[controllers addObject:settingNav];
self.tabController.viewControllers = controllers;//@[chatNav,callNav,conNav,settingNav];
self.tabController.selectedIndex=0;
[self.window setRootViewController:self.tabController];
[self.window makeKeyAndVisible];
}
Он переписывается в Xcode 9 с iOS 11.