在故事板中,检查器窗格中有一个属性,表示"是初始视图控制器"。如何以编程方式访问此属性?我不想改变它。我只想检查视图控制器当前是否是初始视图控制器。我已经在AppDelegate中指定了应该将视图控制器转换为根视图控制器的条件。一旦它实际上是根视图控制器,我想从视图控制器本身运行一些代码(但仅当它是根视图控制器时)。所以我不能只运行ViewDidLoad方法中的代码。我想首先检查视图控制器是否是根视图控制器,如果是,那么我想运行一些代码。有什么想法吗?
答案 0 :(得分:1)
故事板中的初始视图控制器与应用程序的根视图控制器不同。例如,您可能有多个故事板,每个故事板都有自己的初始视图控制器。某些代码可能也改变了当前的rootViewController,使其与从应用程序启动的初始视图控制器不同。
要检查当前视图控制器是否为根视图控制器,请使用:
if self == UIApplication.shared.keyWindow?.rootViewController {
/*do stuff*/
}
但要注意放置它的位置。我会在viewWillAppear或viewDidAppear中进行检查,而不是viewDidLoad。