Как восстановить из viewDidUnload(после предупреждений памяти), используя UISplitViewController

Я делаю приложение для iPad на основе разделенного вида (только в портретном режиме) и хочу узнать, как восстановить исходное состояние после viewDidUnload называется.

Когда приложение с разделенным видом было запущено в первый раз, -splitViewController:willHideViewController:withBarButtonItem:forPopoverController:вызывается автоматически (сразу после -viewDidLoad). Я готовлю UIBarButtonItems в методе.

Если я открою модальный диалог или что-то с UIWebViewController (это занимает много памяти), приложение получает предупреждение памяти, viewDidUnload(ы) называются.

Когда я закрываю модальное диалоговое окно, -viewDidLoad вызывается автоматически, но на этот раз -splitViewController:willHideViewController:withBarButtonItem:forPopoverController: не называется.

Я готовлю UIBarButtonItems в -splitViewController:willHideViewController:withBarButtonItem:forPopoverController:но это не называется, поэтому кнопки распускаются.

В этом случае я должен вызвать метод вручную?

Я нашел подобное размещение здесь. https://github.com/grgcombs/IntelligentSplitViewController/issues/6

Благодарю.

1 ответ

Я не знаю, нормально ли отвечать на мой вопрос, но, возможно, я нашел ответ на этот вопрос.
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;
   }
}
Другие вопросы по тегам