0

我正在为iOS6和开发一个应用程序iOS7。我刚刚发现了一个奇怪的行为,在两个版本之间有所不同。

我的应用程序有UITabbarController3 个选项卡,每个选项卡都UINavigationController在其中。

iOS6push对这些navControllers中的任何一个执行第二次操作时ViewControllerroot不会backnavigationBar. 但是,任何后续按下都会显示该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. 这就是我过渡到tabbarVCinAppDelegate

    _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];
4

0 回答 0