Как восстановить из 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;
}
}