當我的iPhone應用程序工作時,在我的代碼中有一個奇怪的錯誤。我正在創建一個導航控制器並將其放在我的標籤欄控制器中,然後當我從初始屏幕移動到第二屏幕時,第二屏幕上的後退按鈕指向自身。所以當按下後面它只是重新加載自己,然後下一次按下它回到第一個屏幕。uinavigationcontroller後退按鈕重新加載當前加載的屏幕
UINavigationController *nav1 = [[UINavigationController alloc] init];
// create the initial views for each nav controller
SearchViewController *searchView = [[SearchViewController alloc] init];
searchView.title = @"Search";
//place all the viewcontrollers on the nav controllers ready to view
[nav1 pushViewController: searchView animated:NO];
//create tab bar out of above nav controllers
UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"Search" image:[UIImage imageNamed:@"search.png"] tag:0];
nav1.tabBarItem = item;
UITabBarController *tbc = [[UITabBarController alloc] init];
tbc.viewControllers = [NSArray arrayWithObjects:nav1, nil];
//
[nav1 release];
上面的代碼是在對的appdelegate NAV +標籤控制器
SecondScreenViewController *sVC = [[SecondScreenViewController alloc] init];
sVC.title = @"Screen 2";
[self.navigationController pushViewController:sVC animated:YES];
[sVC release];
的初始設置之上是在加載所述第二屏幕/的ViewController到導航控制器搜索視圖控制器的代碼。但屏幕2頂部的後退按鈕在屏幕2中有單詞屏幕2,當我按一次它重新加載自身,然後後退按鈕說搜索(這是第一屏幕的標題)。這次按它將它帶回到第一個屏幕。
我只是困惑爲什麼後退按鈕顯示視圖控制器自己的標題名稱並重新加載自己。我沒有在這些屏幕的任何其他代碼真的,它們與顯示該屏幕的標籤只是空白屏幕是那裏,而我學習如何使用它正確
正如有人好心在我的問題一個向我指出,你可以使用self.navigationController.viewControllers,看看你確實有你的導航堆棧。那裏可能有些腥意。 – Monolo
爲提示而歡呼。這表明我不知何故我的第二個視圖控制器被加載兩次。現在來追蹤那個 – TiltedWindmill