我的應用程序設置是一個帶有三個選項卡的UITabBar。在每個選項卡中是不同的UINavigationController。如何釋放UINavigationController?
在第一個選項卡中有一個刷新按鈕 - 這會加載來自web(xml)的一系列數據。數據顯示在三個選項卡欄中。
如何在有人刷新數據時釋放UINavigationControllers?我想這樣做的原因是,當數據改變了各個標籤時,可能會顯示全新的數據,所以保持該屏幕會有點危險..如果這是有道理的。所以我想完全刷新UINavigationControllers,並在導航堆棧中再次單擊某個選項卡時顯示第一個視圖。
感謝Ryan的回答。我做的方法是這樣的
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]?
}
}
太好了,謝謝。我修改了我的問題,根據您的洞察力顯示了我使用的代碼。 – cannyboy 2010-11-06 12:41:36