【问题标题】:iOS Storyboard Conditionally showing ViewsiOS Storyboard 有条件地显示视图
【发布时间】:2013-12-23 04:56:39
【问题描述】:

我目前正在第一次使用 Storyboards 为 iPad 开发一个项目,我想知道我的方法是否是正确的方法。

本例中的第一个 ViewController 实际上是一个拆分视图控制器。

当前在 iPad 应用程序中,当用户单击导出功能按钮时,我根据我正在运行的一些代码/检查有条件地请求 segue

    [self performSegueWithIdentifier:@"subscribe" sender:self];
    [self performSegueWithIdentifier:@"filterOptions" sender:self];
    [self performSegueWithIdentifier:@"showExportedDoc" sender:self];

但是我不确定我是否应该有 3 个导航控制器,并且当用户单击订阅视图控制器中的购买按钮时,它会推送到实际上嵌套在另一个导航控制器中的过滤器选项视图。

任何关于这方面的帮助/建议都会很棒,因为我提到我只是不确定我是否遵循了最好的方法。

谢谢

【问题讨论】:

  • 我不确定您的整体结构,但您遇到问题:#1 转到 #2,然后 #2 回到 #1。除非您使用 unwind segue 或返回代码(通过解除或弹出),否则您不应该返回您来自的控制器。每次执行 segue 时,都会创建一个新的控制器实例。
  • 您好,感谢您的回复,由于措辞不正确,我已更新屏幕截图。 #1 到 #2,反之亦然,这绝对是我不确定的部分,尤其是它跳过了它起源的导航控制器
  • 你必须记住,所有的 segue 都会实例化新的视图控制器,所以当你试图返回时,它不会是你来自的同一个视图控制器。

标签: ios objective-c uistoryboard uistoryboardsegue


【解决方案1】:

... 和 当用户点击订阅视图中的购买按钮时 控制器它推送到实际上是过滤器选项视图 嵌套在另一个导航控制器中。

嗯,我想你在这里有一些误解。过滤器选项视图控制器嵌入在故事板中的导航控制器中这一事实并不意味着当您在当前导航控制器中推送它时它将使用UINavigationController 实例化(如果您将 segue 连接到它所嵌入的 UINavigationController)。

为了回答您最初的问题,我在这里没有看到正确和错误的方法。这完全取决于您想要的结构。对我来说,我想我宁愿只有一个 UINavigationController 来管理一切(将其设置为初始视图控制器并将您的主视图控制器嵌入其中)。这将为用户提供更一致的导航体验,以及更一致的外观(导航栏将从头开始显示)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2016-08-25
    相关资源
    最近更新 更多