【问题标题】:Multiple segues from different view controller to one view controller从不同的视图控制器到一个视图控制器的多个 segues
【发布时间】:2014-01-08 13:07:02
【问题描述】:

场景:

我有五个不同的视图控制器,并且都在左上角有菜单按钮。

我已经使用故事板通过自定义 segue 将这五个菜单按钮连接到同一个 MenuViewController。

问题:

  1. 即使当前 5 视图控制器与附加到 MenuViewController 故事板的自定义 segue 看起来超级丑陋,我尝试以不同的方式排列它们 但是除了这 5 个之外,还有许多其他的视图控制器和其他 segues,它们并没有让我使故事板看起来干净并且有更好的可见性来查看应用程序流。

  2. 未来会有更多的视图控制器在左上角使用相同类型的菜单按钮,我目前正在处理前几个屏幕。

我知道的解决方案:

  1. 使用storyboard方法instantiateViewControllerWithIdentifier获取MenuViewController并手动显示。

    我不喜欢它的原因: 自定义 segue 以更好的方式处理所有动画并在一处添加带有视图控制器代码的视图。在这里,我需要在每个视图控制器中编写按钮单击方法,并使用自定义 segue 代码来显示动画。

  2. 使用多个故事板,每个模块一个故事板。

    不知道如何在这种情况下使用它,因为它们都是同一个模块的一部分,而且我是故事板的新手。

处理这种情况的最佳方法是什么?有没有我想念的更好的解决方案? 什么是干净的方法可以通过更好的应用程序流可见性来实现这一点,而无需大量重复代码等。

感谢任何帮助。

【问题讨论】:

  • 这 5 个视图控制器,它们有很大的不同,或者它们可以在故事板中组合成一个吗?当然还有一些额外的视图初始化代码。
  • 不,它们完全不同

标签: ios storyboard segue


【解决方案1】:

我认为您只是在项目中遇到了故事板的限制。使用故事板(而不是多个 xib 文件或在代码中做所有事情)的原因首先是为了在设计时轻松创建和可视化视图控制器(又名 segues)之间的转换。如果你有太多的转场,以至于它们在屏幕上变得一团糟,那么显然故事板的方法是麻烦多于它的价值。我会考虑将其分解为 xib,尤其是如果您预计您的应用将来会变得更加复杂。

【讨论】:

  • 感谢您的回复。是的,使用 xibs 将解决所有问题。由于我没有更好的解决方案,我更喜欢使用“instantiateViewControllerWithIdentifier”。
【解决方案2】:

[self performSegueWithIdentifier:@"SEGUE_IDENTIFIER" sender:self];

【讨论】:

  • 要使用“performSegueWithIdentifier”,您需要在情节提要上放置转场。我的问题是很多这些segues。像这样手动调用它们没有意义
猜你喜欢
  • 2014-09-10
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多