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