10

言う上のドキュメントviewControllerWithRestorationIdentifierPath:coder:

このメソッドの実装では、対応するビュー コントローラ オブジェクトを作成 (または検索) し、それを返す必要があります。このメソッドの実装では、必ずしも新しいビュー コントローラ オブジェクトを作成する必要はありません。別の方法で作成された既存のビュー コントローラー オブジェクトを返すこともできます。たとえば、View Controller がすでにストーリーボード ファイルから読み込まれている場合は、新しいオブジェクトを作成するのではなく、そのオブジェクトを返します。[イタリック体]

これは、私にはまったく意味のないことのように思えてきました。クラスメソッドです!現時点では、インスタンスを作成しない限り、どのインスタンスにもアクセスできません。クラスメソッドが「ストーリーボードファイルから既にロードされているView Controller」を見つけたり知ったりする方法を誰かが説明してくれたらありがたいです。

編集:viewControllerWithRestorationIdentifierPath:coder:賞金を獲得するには、 「別の方法で作成された既存のView Controllerオブジェクトを返す」ために使用されているクラスメソッドの実際のケースを、自分のアプリから表示する必要があります。

4

1 に答える 1

2

私が考えることができる最も一般的な例は、App Delegate が所有するビュー コントローラーです。これは伝統的に、従来のアプリのタブ バー コントローラーまたはナビゲーション コントローラーですが、完全にカスタム化されたものになる場合があり、この機能が役立つ場合があります。

はほぼシングルトンでデリゲートが 1 つあるためUIApplication、アプリ デリゲートにはグローバルな状態があり、どこからでもアクセスできることを意味します[[UIApplication sharedApplication] delegate]

もちろん、シングルトンはどこからでもアクセスでき、一般的なパターン (個人的には嫌いなもの) は、NavigationManagerグローバル ビュー コントローラーの遷移を管理するシングルトンを使用することです。この場合、既存のインスタンスにもアクセスできます。

于 2013-09-02T23:55:27.780 に答える