Хорошо, у меня есть следующее:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MainViewController * tabBarController = [[MainViewController alloc] init];
[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];
[tabBarController release];
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|
UIRemoteNotificationTypeAlert|
UIRemoteNotificationTypeSound];
return YES;
}
Здесь MainViewController является просто подклассом UITabBarController, и внутри viewDidLoad у MainViewController у меня есть:
- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableArray *localControllersArray = [[NSMutableArray alloc] initWithCapacity:3];
MapViewController * map = [[MapViewController alloc] init];
[localControllersArray addObject:map];
//[localNavigationController release];
[map release];
ListViewController * voteSpot = [[ListViewController alloc] initWithTabBar];
[localControllersArray addObject:voteSpot];
//[localNavigationController release];
[voteSpot release];
ProfileViewController * profile = [[ProfileViewController alloc] initWithTabBar];
[localControllersArray addObject:profile];
//[localNavigationController release];
[profile release];
self.viewControllers = localControllersArray;
[localControllersArray release];
}
и теперь я вижу только:
Есть идеи, почему это белый экран?
Вот пример моего initWithTabBar:
-(id) initWithTabBar {
if ([self init]) {
self.navigationItem.title=@"Map";
}
return self;
}
На мгновение игнорируем нижнюю панель вкладок (отсутствует средняя), которая делает именно то, что я хочу. Меня смущает то, что viewController связан с каждой вкладкой, на нем ничего нет, хотя на самом деле MapViewController имеет MapView в Это. Когда я нажимаю на любую вкладку, она падает (программа получила сигнал: EXC_BAD_ACCESS) в int retVal = UIApplicationMain(...)
UPDATE:
Если вы хотите отладить его, я загрузил пример кода на git hub , где вы можете скачать весь проект (это простой тестовый проект, обещаю)