如何在IOS中的UIButton touch上切换UINavigationController

时间:2014-02-05 01:35:22

标签: ios uinavigationcontroller

我有一个UITabBar,它有五个不同的视图控制器。每个视图控制器都有自己的导航控制器。我有一个特殊的视图控制器,只在用户第一次进入应用程序时出现。我的问题是,当用户在normal view controller完成时,我无法找到一种方式来呈现welcome view controller。我已经得到它来呈现viewController,但它与navigationController具有相同的welcomeView,而不是应该为该视图显示的navigationController。我该如何解决这个问题?

以下是我推动它的方式:

- (void)toFeed:(UIButton *)sender {

    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"TermsAccepted"];

//    FeedViewController *feedViewController = [[FeedViewController alloc] init];
//    
//    [self.navigationController pushViewController:feedViewController animated:YES];

    self.tabBarController.tabBar.hidden = NO;
    self.tabBarController.selectedIndex = 0;
    self.navigationController.navigationBar.hidden = NO;

}

2 个答案:

答案 0 :(得分:0)

尝试更改导航控制器的rootviewcontroller。

[navController setViewControllers:newViewController animated:NO];

答案 1 :(得分:0)

喜欢这个吗?

- (无效)switchRootViewController:(的UIViewController *)的viewController {

[UIView transitionWithView:self.window duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^(void) {
                    BOOL oldState = [UIView areAnimationsEnabled];
                    [UIView setAnimationsEnabled:NO];
                    self.window.rootViewController = viewController;
                    [UIView setAnimationsEnabled:oldState];
                }
                completion:nil];

}

或简单推送

[self.navigationController pushViewController:<#(UIViewController *)#> animated:<#(BOOL)#>]