iOS故事板有条件地显示视图

10

我目前正在使用Storyboard第一次为iPad制作项目,并且我想知道我的方法是否正确。

在此示例中,第一个视图控制器实际上是分割视图控制器。

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

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

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

如果有任何帮助/建议,那就太好了,因为我不确定是否采用了最佳方法。

谢谢

Storyboard Layout


3
我不确定你的总体结构,但你在#1转到#2,然后#2又返回#1时存在问题。除非使用取消 (unwind) 转场或在代码中返回(通过dismiss或pop),否则不应返回到原来的控制器。每次执行转场操作时,都会创建一个新的要前往的控制器实例。 - rdelmar
谢谢回复。我已经更新了屏幕截图,因为措辞不正确。#1到#2以及反之间的部分确实让我感到困惑,特别是它跳过了导航控制器,而该部分起源于它。 - MonkeyBlue
请注意,所有的segue都会实例化新的视图控制器,因此当你尝试返回时,它不会是你来自的同一个视图控制器。 - andykkt
1个回答

2
当用户在订阅视图控制器中点击“购买”按钮时,它会推到实际上嵌套在另一个导航控制器中的“筛选选项”视图。嗯,我认为你有一些误解。在你的故事板中,“筛选选项”视图控制器嵌入在导航控制器中并不意味着当你在当前导航控制器中推送它时它将与UINavigationController一起实例化(如果你将segue连接到它嵌入其中的UINavigationController,它将是这样的)。回答你最初的问题,我认为这里没有对错之分。这完全取决于你想要的结构。对我来说,我想只有一个管理所有东西的UINavigationController(将其设置为初始视图控制器并将你的主页视图控制器嵌入其中)。这将为用户提供更一致的导航体验,以及更一致的外观(导航栏将从一开始显示)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接