当我的 iOS 应用程序第一次启动时,我会自动打开一个“欢迎”模式,如下所示:
UIViewController *intro = [self.storyboard instantiateViewControllerWithIdentifier:@"intro"];
intro.modalPresentationStyle = UIModalPresentationFullScreen;
//Show the modal
[self presentViewController:intro animated:NO completion:nil];
在该模式中,指示用户将应用程序链接到 Dropbox。他们点击一个按钮来触发这个:
[[DBSession sharedSession] linkFromController:self];
这是一个 Dropbox SDK 方法,它在另一个模式中打开 Dropbox 身份验证 UIWebView,如下所示:http ://d.pr/i/6ZnC
一旦他们登录,模式会自动关闭动画。
然后我尝试用这个关闭原始的介绍模式:
[self dismissViewControllerAnimated:YES completion:nil];
但是我收到了这个警告并且模态没有关闭:
警告:在演示或关闭过程中尝试从视图控制器 <PPIntroViewController: 0xf296ab0> 关闭!
这是我尝试过的:
- 我在让 Dropbox 模式关闭之前
dismissViewControllerAnimated
进行了人为延迟,但这无济于事:[NSThread sleepForTimeInterval:2.0];
- 我试过关闭动画:
[self dismissViewControllerAnimated:NO completion:nil];
这也无济于事。 - 我已经尝试检查已经在进行中的模态解雇:
if(![self isBeingDismissed]){ ... }
但没有运气。
有任何想法吗?我怎样才能确定究竟是什么呈现/关闭并阻止模态关闭?
iOS 7 + Xcode 5