我正在为iOS6
和开发一个应用程序iOS7
。我刚刚发现了一个奇怪的行为,在两个版本之间有所不同。
我的应用程序有UITabbarController
3 个选项卡,每个选项卡都UINavigationController
在其中。
当iOS6
我push
对这些navControllers
中的任何一个执行第二次操作时ViewController
,root
不会back
在navigationBar
. 但是,任何后续按下都会显示该back
按钮。
但是,在iOS7
第一次按下后,我看到一个没有标题的后退按钮,"Back"
在随后的按下后看到一个带有标题的后退按钮。
这种行为正常吗?我不明白为什么会这样。OS
无论版本如何,我如何确保每次按下后都有一个后退按钮。
编辑
为了清楚起见,这里有一些代码:
这就是我启动的方式UITabBarController
- (id)init {
self = [super init];
if (self) {
NSMutableArray *vcs = @[].mutableCopy;
JBNavigationVC *navVC = nil;
if ([JBUser sharedInstance].isLoggedIn) {
_productCategoryVC = [[JBProductCategoryVC alloc] init];
_productCategoryVC.title = @"Products";
navVC = [[JBNavigationVC alloc] initWithRootViewController:_productCategoryVC];
[vcs addObject:navVC];
_triviaVC = [[JBTriviaVC alloc] init];
_triviaVC.title = @"Trivia";
navVC = [[JBNavigationVC alloc] initWithRootViewController:_triviaVC];
[vcs addObject:navVC];
_infoVC = [[JBInfoVC alloc] init];
_infoVC.title = @"Info";
navVC = [[JBNavigationVC alloc] initWithRootViewController:_infoVC];
[vcs addObject:navVC];
}
self.viewControllers = vcs;
}
return self;
}
JBNavigationVC 是UINavigationController
. 这就是我过渡到tabbarVC
inAppDelegate
_tabBarVC = [[JBTabBarVC alloc] init];
[_tabBarVC setSelectedIndex:0];
[self.window setRootViewController:_tabBarVC];
这将第一个设置在VC
前面。这个VC里面有一个UITableView
,- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
我这样做:
if (!_productsListVC) {
_productsListVC = [[JBProductsListVC alloc] init];
}
_productsListVC.category = category;
[self.navigationController pushViewController:_productsListVC animated:YES];