3

分割ビュー ベースの iPad アプリケーション (ポートレート モードのみ) を作成しています。呼び出し後に初期状態に戻す方法を知りたいですviewDidUnload

分割ビュー アプリケーションの初回起動時に、 -splitViewController:willHideViewController:withBarButtonItem:forPopoverController: が自動的に呼び出されます ( の直後-viewDidLoad)。メソッドにUIBarButtonItemsを用意します。

モーダル ダイアログなどを開くとUIWebViewController(多くのメモリを消費します)、アプリケーションがメモリ警告を受け取り、viewDidUnload(s) が呼び出されます。

モーダル ダイアログを閉じると、-viewDidLoad が自動的に呼び出されますが、今回 -splitViewController:willHideViewController:withBarButtonItem:forPopoverController:は呼び出されません。

UIBarButtonItems を用意しました -splitViewController:willHideViewController:withBarButtonItem:forPopoverController: が、呼び出されていないため、ボタンが閉じられます。

その場合、メソッドを手動で呼び出す必要がありますか?

ここで同様の投稿を見つけました。 https://github.com/grgcombs/IntelligentSplitViewController/issues/6

ありがとう。

4

1 に答える 1

3

自分の質問に答えてもいいのかわかりませんが、これに対する答えを見つけたかもしれません。
http://osdir.com/ml/cocoa-dev/2011-02/msg00430.html

BarButtonItems を viewDidUnload に保持し、viewDidLoad にロードする必要があると書かれています。

うまく機能しているようです。

- (void)viewDidUnload {
   [super viewDidUnload];
   self.toolbarItems = self.toolbar.items; // property with retain policy
}

- (void)viewDidLoad {
   [super viewDidLoad];
   if (self.toolbarItems) {
      self.toolbar.items = self.toolbarItems;
      self.toolbarItems = nil;
   }
}
于 2011-08-05T22:48:01.437 に答える