22

2つのウィンドウアプリがあり、最初のウィンドウを表示しているときに、2番目のウィンドウのビューを読み込んで、後でバックグラウンドで使用できるように準備します。

メソッドを使用しようとしましloadViewたが、Appleはこのメソッドを直接呼び出さないように言っています。

これまでのところ、userInteractionEnabled実際には暗黙的にメソッドを呼び出すビューのメソッドを使用することを選択しましたviewDidLoad

メソッドを自然に起動する前に強制的に起動するエレガントな方法はありViewControllers viewDidLoadますか(ウィンドウがキーで表示されている場合)?

4

4 に答える 4

57

と呼ぶだけ[viewController view];です。

UIViewControllerのドキュメントでは、ビュープロパティが遅延ロードされる方法とviewDidLoad、ビューがロードされた後に呼び出される方法について説明しています。

于 2012-10-03T07:25:23.337 に答える
28

iOS 9では、Appleはついにこれを修正しました:

// Loads the view controller's view if it has not already been set.
@available(iOS 9.0, *)
public func loadViewIfNeeded()
于 2016-07-21T07:53:45.670 に答える
6

Swift 2.0、@ Carl Veazeyのソリューションと同じ結果:

let viewController = MyCustomViewController()
_ = viewController.view
于 2016-01-20T00:27:13.313 に答える
0

そのコントローラーのグローバルインスタンスを作成し(にある可能性がAppDelegateあります)、アクションを実行するメソッドを呼び出すことができます。次に、そのコントローラーにプッシュしている間は、新しいインスタンスを作成しないでください。グローバルに使用するために作成したインスタンスを使用するだけです。

于 2012-10-03T07:24:39.203 に答える