【问题标题】:Warning while dismissing and presenting FullScreen ModalViewController关闭和呈现 FullScreen ModalViewController 时发出警告
【发布时间】:2014-03-05 05:04:30
【问题描述】:

我有SplitViewController 项目。在详细信息窗格(右侧)中,在方法 -viewDidAppear 中,我有以下代码:

login.modalPresentationStyle = UIModalPresentationFullScreen;
login.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

在“登录”ViewController 我有一个按钮,当被点击时,会转到这个方法:

-(void)registerEvent{
NSLog(@"registerEvent");
[self dismissViewControllerAnimated:YES completion:^{
[_delegate dismissLogin];
}];
}

在我的委托ViewControllerdetailViewController)方法中,我有这个代码:

-(void)dismissLogin{
ViewControllerRegister * registerForm = [ViewControllerRegister new];
[registerForm setDelegate:self];

registerForm.modalPresentationStyle = UIModalPresentationFullScreen;

registerForm.modalTransitionStyle = transition;

[self presentViewController:registerForm animated:YES completion:nil];
}

问题是,如果我将模态表示样式更改为UIModalPresentationFormSheet,编译器不会给我任何警告,并且会显示registerForm ViewController。但是使用UIModalPresentationFullScreen,编译器会给我这个警告:

警告:尝试在 进行演示时 进步!

我已经尝试使用performSelector,延迟为0.4,仍然没有解决问题。

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: ios uiviewcontroller modalviewcontroller compiler-warnings dismiss


    【解决方案1】:

    我相信这意味着你的视图已经在呈现一些东西,它不能在它上面呈现另一个视图。

    【讨论】:

    • 谢谢。我发现当我们使用 UIModalPresentationFullScreen 呈现 VC 时,当您关闭 VC 时,父 VC 在方法 ViewDidLoad 中启动。但是,如果您使用其他一些 UIModelPresentations(例如:UIModelPresentationFormSheet),则父 VC 不会使用 ViewDidLoad 进行初始化。
    • 那是因为在全屏模式下呈现会占用整个屏幕,它确实需要在父级关闭时调用 viewDidLoad ,因为它需要再次重绘整个屏幕。我很高兴能帮上忙!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多