【问题标题】:How do I setup a segue for a viewController to present itself如何为 viewController 设置一个 segue 来展示自己
【发布时间】:2016-05-07 09:46:06
【问题描述】:

好的,使用故事板让一个 viewController 创建到另一个 viewController 的 segue 非常简单。只需按住 Control 单击并从一个 viewController 拖动到另一个。

如何在情节提要中或以编程方式创建一个转场来调用或呈现其自身的另一个实例?

我为什么要这样做?

我目前有一个带有 UICollectionView 的 viewController,它从一个简单的一维对象数组中的数据呈现。当我选择一个项目时,它会显示该项目的详细视图控制器。

我想要做的是出于组织原因修改我的数据,以允许数组中的对象像原始数据数组一样保存对象数组,作为带有子文件夹的文件夹。在我看来,简单地更新数据源指向的内容并调用相同的 viewController 本身来显示下一个级别应该是相对简单的。完成后,只需返回一个关卡并在您离开的地方。

从 viewController 点击拖拽到它本身似乎并不简单。在使用故事板和转场之前,这将通过简单地呈现视图控制器来完成。使用情节提要和转场的最佳方法是什么?

是的,它可能通过操作数据源并重新绘制当前 viewController 来完成,但似乎应该更简洁地使用指向子数组的指针调用 viewController,就好像它是顶部一样level 数组并重新呈现相同的 viewController,让视图控制器堆栈管理各个级别,而无需从不同的起点重新绘制模型并记住某种堆栈中的起点。

对最好的方法有什么建议吗?

【问题讨论】:

    标签: recursion uiviewcontroller storyboard segue recursive-datastructures


    【解决方案1】:

    显然你不能调用或展示你的视图控制器本身。 这可能是因为 UIKit 不是可重入的或线程安全的。因此,Apple 不允许您使用 segue,或使用带有 self 参数(或任何解析为 self)的 presentViewController。

    很遗憾,如果不必创建一个子视图控制器来完成与 viewController 所做的所有相同的事情,那就太好了。

    如果有人知道更好的方法,请在下面发布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多