Recursion 如何设置viewController的segue以显示其自身

Recursion 如何设置viewController的segue以显示其自身,recursion,uiviewcontroller,storyboard,segue,recursive-datastructures,Recursion,Uiviewcontroller,Storyboard,Segue,Recursive Datastructures,好的,使用故事板让一个viewController创建到另一个viewController的序列非常简单。只需控制从一个viewController单击并拖动到另一个viewController 我如何在故事板中创建一个segue,或者通过编程来调用或呈现它自身的另一个实例 我为什么要这么做 我目前有一个viewController,它的UICollectionView是从简单的一维对象数组中的数据显示的。当我选择一个项目时,它会显示该项目的详细视图控制器 我想做的是出于组织原因修改我的数据,以

好的,使用故事板让一个viewController创建到另一个viewController的序列非常简单。只需控制从一个viewController单击并拖动到另一个viewController

我如何在故事板中创建一个segue,或者通过编程来调用或呈现它自身的另一个实例

我为什么要这么做

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

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

从viewController中单击并拖动到其自身似乎很重要。在使用故事板和分段之前,只需显示视图控制器即可完成此操作。使用故事板和分段的最佳方式是什么

是的,可以通过操作数据源并重新绘制当前的viewController来完成,但似乎更干净的做法是,只需使用指向子数组的指针调用viewController,就像它是顶级数组一样,并重新显示相同的viewController,让视图控制器堆栈管理各个级别,而不必从不同的起点重新绘制模型并记住某种堆栈中的起点


您有什么建议吗?

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

遗憾的是,如果不必创建一个子视图控制器就好了,它可以完成与viewController相同的功能

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