YouTube插件播放器本身就是一个模态视图控制器.presentingViewController当按下完成按钮时它返回到它.它presentingViewController不是你的模态视图控制器,而是调用的viewController [presentModalViewController:animated:]来呈现你的模态视图控制器.由于原始模态视图控制器仍处于活动状态,因此应用程序表现不佳.
要解决这个问题,
1)跟踪模态视图控制器是否已被呈现但未被解除.
2)在viewDidAppear呈现视图控制器的方法中,如果呈现模态视图控制器而不是被解除,则解除并再次呈现它.
例如,在呈现模态Web视图控制器的控制器中:
- (void) presentModalWebViewController:(BOOL) animated {
// Create webViewController here.
[self presentModalViewController:webViewController animated:animated];
self.modalWebViewPresented = YES;
}
- (void) dismissModalWebViewController:(BOOL) animated {
self.modalWebViewPresented = NO;
[self dismissModalViewControllerAnimated:animated];
}
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (self.modalWebViewPresented) {
// Note: iOS thinks the previous modal view controller is displayed.
// It must be dismissed first before a new one can be displayed.
// No animation is needed as the YouTube plugin already provides some.
[self dismissModalWebViewController:NO];
[self presentModalWebViewController:NO];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6143 次 |
| 最近记录: |