如何为viewController设置segue以显示自身

时间:2016-01-29 15:34:24

标签: recursion uiviewcontroller storyboard segue recursive-datastructures

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

如何在故事板中创建segue,或以编程方式调用或呈现自己的另一个实例?

我为什么要这样做?

我目前有一个viewController,它带有一个UICollectionView,它是根据一个简单的一维对象数组中的数据呈现的。当我选择一个项目时,它会为该项目提供一个详细的viewController。

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

从viewController单击拖动到它自己似乎很不平凡。在使用故事板和segue之前,这可以通过简单地呈现视图控制器来完成。使用故事板和分段来实现这一目标的最佳方法是什么?

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

有关最佳方法的建议吗?

1 个答案:

答案 0 :(得分:0)

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

很遗憾,因为不必创建一个子视图控制器来完成viewController所做的所有事情。

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