强制viewDidLoad在iOS上触发
我有两个窗口的应用程序,而我出现第一个窗口,我希望在第二个窗口中的视图加载和准备后来在后台的内容。
我试图使用方法loadView
但苹果说,你不应该直接调用这个方法。
到目前为止,我select使用视图的方法userInteractionEnabled
,其实际隐式调用viewDidLoad
方法。
有没有一种优雅的方式来强制ViewControllers
viewDidLoad
方法之前,它应该自然(当窗口是关键和呈现)?
你可以调用[viewController view];
。
UIViewController的文档解释了如何加载视图属性,并加载视图后调用viewDidLoad
。
在iOS 9中,苹果终于解决了这个问题:
@available(iOS 9.0, *) public func loadViewIfNeeded() // Loads the view controller's view if it has not already been set.
Swift 2.0 ,与@Carl Veazey解决scheme的结果相同:
let viewController = MyCustomViewController() _ = viewController.view
您可以为该控制器创build一个全局实例(可以在AppDelegate
)并调用您想要执行该操作的方法。 然后推送到该控制器不要创build一个新的实例只要使用您创build的实例供全局使用。