【问题标题】:Can you segue to a storyboard view controller from multiple navigation controllers?你能从多个导航控制器中切换到故事板视图控制器吗?
【发布时间】:2013-11-17 21:52:36
【问题描述】:

背景:应用程序的 UI 是一个标签栏控制器,每个标签栏都有自己的导航控制器。几个视图控制器是常见的,用户可以访问它们而不管他们正在使用哪个选项卡。最初,我只是将故事板上的所有转场转至故事板上的一个视图控制器以获取这些常见视图。但我意识到用户可以进入公共视图,选择不同的选项卡,然后返回到不同导航控制器上的公共视图......我不知道那是什么。是视图控制器的这两个不同的实例吗?如果不是,它会在弹出时“返回”哪个导航控制器?

Xcode 崩溃变得越来越频繁,直到它在打开故事板时立即开始崩溃。同时,我有几十个“模棱两可的视图”类型的警告,我一直在推迟解决。所以我调整了约束,直到所有的警告都被消除了,加上我消除了导航控制器之间的任何segues,我只有多个公共视图的副本。从那以后,Xcode 一直很稳定。但是现在我的故事板中的一组视图控制器中的每一个都有三个副本,并且更改/维护它们被证明很麻烦。

【问题讨论】:

  • 您不认为在代码中管理其中的一些可能是个好主意吗?故事板不是灵丹妙药,尤其是对于自定义/非标准用户界面。
  • 你可能说对了,我对 IOS 太陌生了,我把故事板当作一种拐杖。但是在我什至没有考虑过的代码中触发了其中一些“通用”视图控制器。所以我会为一些视图控制器提供独立的 nib 文件,而另一些则在情节提要中设计?
  • 您可以在情节提要中拥有视图控制器,并通过它们的标识符实例化它们并推送/呈现它们。
  • 谢谢!我已经开始在适当的时候使用 coded 来实例化 VC。它减少了我的工作量并清理了我的故事板。好推@Wain。

标签: ios uinavigationcontroller storyboard segue


【解决方案1】:

Storyboard 非常强大,但它也很方便,并且可以说是为简单的界面和更多新手程序员设计的。因此,在创建更复杂(或者更恰当地说,不太标准)的接口时,您希望将更多内容转移到代码中。这可以是故事板中命名视图控制器的组合(从代码实例化)或独立的 XIB 文件。

【讨论】:

    【解决方案2】:

    您可以做的只是复制您喜欢在情节提要中拥有多个 segue 的视图控制器。在 viewcontroller 的 viewDidLoad 中,您可以从哪个选项卡中找到您被调用的内容,并可能调整它的功能:

    UITabBarController *tabBarController = (UITabBarController *)[[UIApplication sharedApplication] delegate].window.rootViewController;
    ALog( @"Selected tab: %d", tabBarController.selectedIndex );
    

    这只是询问应用程序的 UITabBarController 是选定的选项卡。

    因此,这对一个视图控制器来说并不多,但对于实际用途来说可能已经足够接近了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-01-01
      • 2012-03-10
      • 1970-01-01
      相关资源
      最近更新 更多