Моим приложением является UITabBar с тремя вкладками. В каждой вкладке есть свой UINavigationController.
На первой вкладке есть кнопка обновления - она загружает данные из Интернета (xml). Данные отображаются на трех вкладках.
Как мне выпустить UINavigationControllers, когда кто-то обновляет данные? Причина, по которой я хочу это сделать, заключается в том, что при изменении данных на разных вкладках могут появиться совершенно новые данные для отображения, поэтому было бы немного опасно сохранять этот экран ... если это имеет смысл. Поэтому я хочу полностью обновить UINavigationControllers и показать первое представление в стеке навигации, когда они снова щелкают по вкладке.
Спасибо Райану за его ответ. То, как я это сделал, было что-то вроде этого
for(UINavigationController *navController in [self.navigationController.tabBarController viewControllers]) {
NSLog(@"popping %@", [navController title]);
[navController popToRootViewControllerAnimated:NO];
if ([[navController title] isEqualToString:@"Tab2"])
{
Tab2RootController *newRoot2 = [[Tab2RootController alloc] initWithNibName:@"Tab2RootController" bundle:nil];
newRoot2.title = @"Tab2";
[navController setViewControllers:[NSArray arrayWithObject:newRoot2] animated:NO];
//need [newRoot2 release]?
}
if ([[navController title] isEqualToString:@"Tab3"])
{
Tab3RootController *newRoot = [[Tab3RootController alloc] initWithNibName:@"Tab3RootController" bundle:nil];
newRoot3.title = @"Tab3";
[navController setViewControllers:[NSArray arrayWithObject:newRoot3] animated:NO];
//need [newRoot3 release]?
}
}