当我的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