Я реализую пользовательский TabBarViewController
, который кроме дизайна должен иметь такое же поведение.
Я управляю своим subViewControllers
в массиве, инициализируя представления с отложенной загрузкой, как описано в главе 6 «Начало разработки Iphone», что я делаю, заполняя свой массив таким количеством NSNull
объектов, сколько у меня есть вкладок.и при необходимости заменяя их на только что инициализированные viewControllers
.
Таким образом, я могу отслеживать правильный порядок представлений и связывать их с правыми вкладками (первое место в массиве зарезервировано для первого представления и т. Д.).
При переключении представленийтекущий вид удаляется с помощью [currentViewController.view removeFromSuperview];
, а новый - с помощью [self.view addSubview:newViewController.view];
.Нынешнее прежнее представление сохраняется в массиве для будущего использования.
При повороте устройства возникает трудность, поскольку (я думаю) viewControllers
в моем массиве, которые в этот момент не добавляются в суперпредставление сaddSubview
не вращаются, что, я думаю, имеет смысл.
В результате, когда после вращения, например, в ландшафтном режиме, пользователь переключается на вид, который он уже имел ранее, чтоиз-за того, что это уже инициализировано, представление представлено ему все еще в портретном режиме.
Мои вопросы тогда:
1) Должен ли я вращать мои не добавленные подпредставления вручную, и еслиИтак, как это сделать проще всего?
2) Как обычный TabBarController
управляет своими контроллерами, другими словами, я делаю это правильно?