我的應用程序中的夥計我在應用程序代理方法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