【问题标题】:Dismissing and presenting modalviewcontrollers关闭和呈现 modalviewcontrollers
【发布时间】:2011-08-10 13:30:20
【问题描述】:

晚安,

我有一个用户登录的应用程序,当登录详细信息正确时,modalviewcontroller 被关闭。关闭视图控制器后,将调用另一个视图控制器。这一切都很好,除了当我想切换回原来的控制器时:我的登录控制器。我得到以下代码:

用户登录时调用此代码:

[self dismissModalViewControllerAnimated:YES];
Form *formcontroller1 = [[Form1 alloc] init];
[self presentModalViewViewController:formcontroller1 animated:YES];

用户登录后,有一个注销按钮,调用以下代码:

[self dismissModalViewControllerAnimated:YES];
Postform3ViewController *logincontroller = [[Postform3ViewController alloc] init];
[self presentModalViewViewController:logincontroller animated:YES];

单击按钮后,我收到以下错误消息:

Postform3[5848:207] * 由于未捕获的异常而终止应用程序 'NSInternalInconsistencyException',原因:'试图开始一个 模态转换 from 到 转换已经在进行中。等待 viewDidAppear/viewDidDisappear 知道当前transition有 完成'

我想知道是否有人可以帮助我解决这个问题..

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    实际上,错误消息会准确地告诉您需要做什么。您正在解散一个模态视图控制器,但不要等到它被解散后再尝试呈现另一个。在视图控制器机制调用-viewDidDisappear: 之后,您应该稍后呈现第二个视图控制器。

    【讨论】:

    • 但是如果我调用代码(用于注销按钮)在 viewDidDisappear 方法中再次显示我的登录视图控制器,它最终会得到一个空白屏幕。我还在 viewDidDisappear 中放了一个 NSLog(@"Itreach this code"),它显示在控制台中,但我的登录控制器没有显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 2010-12-04
    相关资源
    最近更新 更多