【问题标题】:Navigating View Hierarchy From A Modal UIViewController从模态 UIViewController 导航视图层次结构
【发布时间】:2011-03-21 20:54:24
【问题描述】:

我正在使用多个使用 UINavigationController 链接的 UIViewController 开发应用程序。 UINavigationController 设置为将主菜单作为其默认视图。主菜单有两个按钮,按下时会显示另外两个 UIViewController 之一。所以我有一个简单的两层视图层次结构,看起来像这样......

Main Menu (UIViewController)
|
 ---- Menu Option 1 (UIViewController)
 ---- Menu Option 2 (UIViewController)

现在我希望我的菜单选项 1 UIViewController 将另一个 UIViewController 显示为模态视图 - 效果很好。不过,我也希望能够直接从这个模态视图跳转到主菜单...

Main Menu (UIViewController) <--------------
|                                           |
 ---- Menu Option 1 (UIViewController)      |
      |                                     |
       ---- Modal View (UIViewController)   |

知道 UINavigationController 是一个堆栈,我需要弹出我的模态视图和下一个项目,我想知道它是怎么可能的......

有没有一种简单的方法可以做到这一点,而无需向 Menu Option 1 UIViewController 添加回调方法?

我也很高兴收到有关我的实施的反馈 - 这似乎有些不对劲!

【问题讨论】:

    标签: iphone objective-c uiviewcontroller uinavigationcontroller


    【解决方案1】:

    UINavigationController 具有 -popToRootViewControllerAnimated: 和 -popToViewController:animated: 方法,您可以使用它们将导航堆栈弹出回特定的视图控制器。因此,您可以让模态控制器自行关闭,然后调用

    [self.navigationController popToRootViewControllerAnimated:YES];
    

    也就是说,请确保执行此类操作对您的用户有意义。导航风格的一个重要方面是用户记住他们是如何到达应用程序中的给定点的,并且他们希望能够通过相同的控制器返回。但是,如果它适用于您的应用,则 -popToRootViewControllerAnimated: 是实现它的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2019-03-18
      • 2020-09-05
      相关资源
      最近更新 更多