我的应用程序中的伙计我在应用程序代理方法application:didFinishLaunchingWithOptions:
中有一些代码,用于确定初始视图控制器应该是LoginViewController
还是MainViewController
。在模态显示第二个ViewController后删除ViewController
如果LoginViewController
是呈先在用户成功登录我这段代码显示MainViewController
模态:
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
FSMainViewController *vc = (MainViewController *)[storyBoard instantiateViewControllerWithIdentifier:@"MainViewController"];
vc.loginViewController = self;
[self presentViewController:vc animated:YES completion:nil];
我想下一步要做什么,后MainController
被显示在屏幕上,是从内存中删除LoginViewController
所以在MainViewController
的viewWillApper:animated:
方法我使用此代码以去除(或至少尝试)的LoginViewController
:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if (self.loginViewController) {
[self.loginViewController dismissViewControllerAnimated:NO completion:nil];
}
}
问题是这个代码导致奇怪的行为,如MainViewController
被从屏幕上移除,并在控制台中显示此错误消息。
Unbalanced calls to begin/end appearance transitions for <LoginViewController: 0xb06e350>
我也试过在presentViewController:animated:completion
方法,但仍然没有运气完成块调用[self dismissViewControllerAnimated:NO completion:nil]
,它没有工作。
我在做什么错?当模式显示MainViewController
时,如何从内存中删除底层LoginViewController
?
这工作,但我宁愿切换到一些过渡动画效果是这样的。有没有办法做到这一点? – BigLex
找到一种方法来在这个链接上设置动画效果:http://stackoverflow.com/questions/7703806/rootviewcontroller-switch-transition-animation – BigLex