У меня возникают некоторые трудности при изменении контроллеров панели вкладок. В основном у меня UITabBarController с 3 контроллерами. Первый раз при запуске приложения. Я меняю один контроллер следующим образом:
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 я делаю некоторые изменения и нажимаю ОК. Теперь мне нужно снова сменить контроллеры, сделав следующее:
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, он не работает.
Есть идеи?
И распечатайте это:
Перед изменением Контроллеры панели вкладок = NULL После изменения Контроллеры панели вкладок = NULL