iOS视图控制器流

iOS视图控制器流,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,现在,我有一个名为Products的表视图,在导航栏上有一个add按钮。单击“添加”按钮时,新的视图控制器将被按下,以显示名为AddItem的视图控制器。问题是,我可以从AddItem中打开一个新的视图控制器a并从重新打开产品吗 可能是我的描述有点混乱。 ProductsTableViewController--(推送)-->AddItemViewController--(模式/推送)-->AViewController--(模式)-->ProductsTableViewController(应

现在,我有一个名为Products的表视图,在导航栏上有一个add按钮。单击“添加”按钮时,新的视图控制器将被按下,以显示名为AddItem的视图控制器。问题是,我可以从AddItem中打开一个新的视图控制器a并从重新打开产品吗

可能是我的描述有点混乱。 ProductsTableViewController--(推送)-->AddItemViewController--(模式/推送)-->AViewController--(模式)-->ProductsTableViewController(应与第一个完全相同)

AddItemViewController和AViewController之间可能有一些控制器

我有两个解决方案: 1.从打开ProductsTableViewController时,获取与以前相同的实例 2.创建ProductsTableViewController的新实例并从单例类获取数据


我担心的是是否存在内存泄漏或保护风险

您的最佳选择是使用代理。不知道为什么要这样做,但如果堆栈中有所有的vcs,并且“ProductsTableViewController”是根,则只需将其移动到堆栈顶部即可

目的是将项添加到表视图。但在添加时,我需要不止一个VCs。如何将其移动到堆栈顶部@为什么你需要不止一个vc?vc通常用于处理所有当前视图。我的下一个问题是,你需要在第一个vc上做什么,让最后一个vc再次运行?如果所有内容都在同一个导航堆栈中,则可以调用[self.navigationController poptrootviewcontrolleranimated:YES],这将使您返回根vc。