タブバーコントローラを変更する際にいくつかの問題があります。基本的に私は3つのコントローラを持つUITabBarControllerを持っています。アプリが初めて起動したとき。UItabBarがView Controllerを変更しています
NSMutableArray *muteArray = [[NSMutableArray alloc] init];
FirstPage *online;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
online =[[FirstPage alloc] initWithNibName:nil bundle:nil];
}else{
online =[[FirstPage alloc] initWithNibName:nil bundle:nil];
}
//adding all controllers of tab bar to array
[muteArray addObjectsFromArray:_navigationCotroller.viewControllers];
online.tabBarControllers = [muteArray copy];
//replacing object of login controller to after login controller
[muteArray replaceObjectAtIndex:1 withObject:online];
[online release];
//setting new controllers to tab bar
[_navigationCotroller setViewControllers:muteArray animated:YES];
[muteArray release];
次に、FirstPageコントローラで何か変更してOKを押します。今、私はこれをやって、もう一度コントローラを変更する必要があります。
NSLog(@"Before change Tab Bar cotrollers = %@",self.tabBarController.viewControllers);
[self.tabBarController setViewControllers:_tabBarControllers animated:YES];
NSLog(@"After change Tab Bar cotrollers = %@",self.tabBarController.viewControllers);
[self.tabBarController.tabBarController setSelectedIndex:1];
_tabBarControllersは、アプリが起動したときに、私が保存されたコントローラの配列です。
このコードはコントローラを変更しますが、変更されたコントローラをsetSelectedIndexで開く場合、動作しません。
アイデア?
そして印刷この:
前には、変更タブバーのcotrollers = NULL 変更タブバーのcotrollers = NULL
_navigationCotrollerもコードの入力ミスですか? –
_navigationCotrollerはメインのUITabBarControllerです – Streetboy
そこに「N」文字がありません;)_navigationCotroller - > _navigationCoNtroller –