UINavigationController setViewControllers:动画显示重复的控制器动画

时间:2015-01-21 22:12:19

标签: ios objective-c uinavigationcontroller

我的应用程序的根视图控制器,我想在注册过程中为新的应用程序状态设置动画。我在之前的应用程序中做了类似的事情,用户左右滑动,我可以按需推送和弹出动态视图控制器,左右动画没问题。但是,在这个应用程序中,使用几乎相同的代码我得到一个重复的视图控制器。导航根视图控制器具有视图控制器A可见,如果我实例化视图控制器B并尝试对其进行动画处理,则可见的视图控制器A将立即被视图控制器B替换(无动画)并动画为秒查看控制器B:

UINavigationController *mainNavigationController = (UINavigationController*)self.window.rootViewController;
UIViewController *nextViewController = nil;
//UIViewController *currentViewController = [mainNavigationController visibleViewController];

if ([[[NSUserDefaults standardUserDefaults] stringForKey:K_APP_USERNAME] isEqualToString:@""]) {
    nextViewController = [self viewControllerForId:USERNAME_VIEW_CONTROLLER];
}

[mainNavigationController setViewControllers:@[nextViewController] animated:YES];

就像我说的,这就是我在以前的应用程序中做到的方式,并且它有效,任何想法为什么这次都在烦恼?谢谢!

1 个答案:

答案 0 :(得分:0)

发现错误

代码被调用两次,因此视图控制器被两次推送到导航控制器。

:(