调用视图控制器类而不弹出视图控制器本身

问题描述:

我正在升级我的应用程序版本,因此需要将两个视图控制器减少到一个。因此,我打电话给第二个视图控制器跳过第一个。但是在这里我需要调用第一个视图控制器的类,因为有一些重要的声明和实现。如何在不弹出其视图控制器的情况下调用第一个视图控制器的类。调用视图控制器类而不弹出视图控制器本身

这很混乱。

为什么不从你的第一个VC(复制粘贴你的属性,在viewDidLoad等初始化)到你的第二个VC的所有初始化代码?

一旦你完成了,摆脱第一个VC,因为它是无用的,并让你的第二个视图控制器的根。

一个ViewController的目的是“被视为”,我建议你不要隐藏它,这是一个非常糟糕的架构。

+0

感谢@ H4Hugo,这是正确的,但只是好奇,如果有这样的替代 – Sam

+0

@Sam你可以使'超类:UIViewController',执行所有共享功能,然后从它继承你的视图控制器 –

如果您根本不需要一个视图控制器,那么您可以从storyBoard中删除该视图控制器,并且还可以将您的类作为NSObject类(让它称为DataProviderClass)而不是先前的(UIViewController)子类继承。在导航堆栈中使用“虚拟”视图控制器并不是一个好主意。

您可以使用您的DataProviderClass类作为支持文件,它可以向您的第二视图控制器提供任何数据。并且要在启动第二个VC之前执行此类中的计算/方法,只需在viewdidLoad方法中通过创建此NSObject类的一个实例(DataProviderClass)并保存对它的引用来运行这些方法。

当你继续进一步,你甚至可以很容易地转移相同的参考DataProviderClass