Мне кажется, я получил решение:
Сначала измените приложение базы просмотра на основанное на навигации:
Это ваш стандартный шаблон для основного пера:
Сделай так:
Добавить UINavigationController. Откройте его и перетащите ViewBasedViewController поверх существующего контроллера в вашем UINavigationController.
Перейдите к своему делегату приложения:
@interface ViewBasedAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UINavigationController *navController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end
@synthesize window;
@synthesize navController;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
//Other code omitted
@end
Свяжите выход navController с контроллером навигации в вашей NIB.
Создайте новый класс, скажем, «TheTabBarController».
Добавьте это к вашему контроллеру на основе представления, чтобы добавить пятый контроллер:
- (IBAction) addFifthView:(id)sender {
TheTabBarController *conn = [[TheTabBarController alloc] init];
[self.navigationController pushViewController:conn animated:YES];
[conn release];
}
Реализуйте TheTabBarController следующим образом:
@interface TheTabBarController : UITabBarController {
}
@end
@implementation TheTabBarController
- (void) viewDidLoad {
UIViewController *dummy = [[UIViewController alloc] initWithNibName:@"Dummy" bundle:nil];
dummy.title = @"Dummy title";
dummy.view.backgroundColor = [UIColor redColor];
UIViewController *otherDummy = [[UIViewController alloc] initWithNibName:@"Dummy" bundle:nil];
otherDummy.title = @"Other dummy";
otherDummy.view.backgroundColor = [UIColor blueColor];
[self setViewControllers:[NSArray arrayWithObjects:dummy,otherDummy,nil]];
[dummy release];
[otherDummy release];
}
//Other code omitted
@end
Должно работать так.