Я обычно предпочитаю создать другой класс tabbarview, который обрабатывает все различные контроллеры представления, и в этом случае делегат приложения будет выглядеть так:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController *viewController = [[ViewController alloc] init];
self.window.rootViewController = viewController.myTabBarController;
[self.window makeKeyAndVisible];
return;
}
И в ViewController я делаю это:1005 * Заголовочный файл:
@interface ViewController : UIViewController {
IBOutlet UITabBarController *myTabBarController;
}
@property (nonatomic, retain) IBOutlet UITabBarController *myTabBarController;
А в файле реализации:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
exerciseViewController *viewController1 = [[exerciseViewController alloc] init];
viewController1.title = @"Exercise";
viewController1.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Exercise" image:[UIImage imageNamed:@"inbox.png"] tag:0];
UINavigationController *firstNavController = [[UINavigationController alloc]initWithRootViewController:viewController1];
bookViewController *viewController2 = [[bookViewController alloc] init];
viewController2.title = @"Book";
viewController2.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Book" image:[UIImage imageNamed:@"inbox.png"] tag:1];
UINavigationController *secondNavController = [[UINavigationController alloc]initWithRootViewController:viewController2];
askViewController *viewController3 = [[askViewController alloc] init];
viewController3.title = @"Ask";
viewController3.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Ask" image:[UIImage imageNamed:@"inbox.png"] tag:2];
UINavigationController *thirdNavController = [[UINavigationController alloc]initWithRootViewController:viewController3];
workshopViewController *viewController4 = [[workshopViewController alloc] init];
viewController4.title = @"Workshop";
viewController4.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Workshop" image:[UIImage imageNamed:@"inbox.png"] tag:3];
UINavigationController *fourthNavController = [[UINavigationController alloc]initWithRootViewController:viewController4];
myTabBarController = [[UITabBarController alloc] init];
myTabBarController.viewControllers = [NSArray arrayWithObjects:firstNavController, secondNavController, thirdNavController, fourthNavController, nil];
}
return self;
}
Это всего лишь пример ... и я думаю, что это правильный способ сделать это.