【问题标题】:dismiss multipleViewControllers in iOS 5 and above?在 iOS 5 及更高版本中关闭多个视图控制器?
【发布时间】:2013-03-29 21:21:56
【问题描述】:

我有一个应用程序,它由一个带有三个视图的 UITabBar 组成,其中一个是 UITableVIew。应用程序启动时加载的第一个视图是在 UITabBar 视图中保存的 UIView。这个视图是一个供用户填写的表格,让他们通过五个不同的屏幕。以前我一直将这些作为模态视图加载到另一个之上,最后在用户点击最终按钮时将它们全部关闭,如下所示:

[self.parentViewController.parentViewController.parentViewController.parentViewController      dismissModalViewControllerAnimated:YES];

但是,由于[self.parentViewController dismissModalViewControllerAnimated:YES] 不再有效并已被[self dismissViewControllerAnimated:YES completion:nil]; 取代,我不确定如何实现视图控制器的多次解除。我尝试将调用添加到父视图控制器,但这不起作用。我也试过:

[self.presentingViewController.presentingViewController.presentingViewController.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

但这似乎也不起作用。任何建议将不胜感激。我还在控制台中收到消息:应用程序窗口应该在应用程序启动结束时有一个根视图控制器。这是导致问题的原因吗?

请注意,这是我多年来第一次为 iOS 编程,我最近大部分时间都花在了 Arduino 和电子学与编码的交互上,所以这是一个有点陡峭的进修课程,我米开。

我们将不胜感激。

【问题讨论】:

    标签: xcode uiviewcontroller modalviewcontroller


    【解决方案1】:

    如果您的五个视图控制器被推送到 UINavigationController 上,那么它们都可以通过一个命令被解除/弹出:

    - (NSArray *) popToViewController: (UIViewController *) viewController 
                             animated: (BOOL) animated
    

    [您似乎没有使用 UINavigationController……但从您的描述中并没有完全清楚。]

    【讨论】:

    • 你是对的,我不是。我已经编辑了这个问题,没有说清楚。感谢您指出。
    • 我想下一个明显的问题是我应该使用导航控制器吗?如果是这样,为什么我现在需要一个,而我以前不需要/
    • 我对导航控制器进行了排序并修复了它。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2015-03-12
    相关资源
    最近更新 更多