Короткая версия:
Я размещаю / инициализирую / сохраняю новый UIViewController в одном методе viewDidLoad UIViewControllers, добавляя новый вид в self.view. Обычно это работает, но кажется, что это мешает обработке изменения ориентации моего приложения для iPad.
Более длинная версия :
Я создаю довольно сложное приложение для iPad, включающее множество представлений и контроллеров представления. После некоторых трудностей с настройкой ориентации устройства я сделал простой проект XCode, чтобы выяснить, в чем проблема.
Во-первых, я прочитал Apple Docs на эту тему (небольшой документ под названием «Почему мой UIViewController не вращается вместе с устройством?» ), и хотя я действительно верю, что у него есть чем заняться с одной из причин, перечисленных там, я не совсем уверен, как это исправить.
В моем тестовом проекте у меня есть appDelegate, rootViewController и UISplitViewController с двумя пользовательскими viewController. Я использую кнопку на rootViewController, чтобы переключиться на splitViewController, и оттуда я могу использовать кнопку, чтобы переключиться обратно на rootViewController. Пока все отлично, то есть все виды соответствуют ориентации устройства.
Однако в правом viewController для splitViewController я использую метод viewDidLoad, чтобы инициализировать некоторые другие viewController и добавить их представления в собственное представление:
self.newViewController = [[UIViewController new] autorelease];
[newViewController.view setBackgroundColor: [UIColor yellowColor]];
[self.view addSubview: newViewController.view];
Здесь все идет не так. Каким-то образом, после добавления этого вида, настройка на ориентацию устройства становится грязной. При запуске все в порядке, после того, как я переключаюсь на splitViewController, все остается в порядке, но как только я переключаюсь на rootViewController, все заканчивается. Я перепробовал (почти) все, что касается сохранения и освобождения viewcontroller, но, похоже, ничего не помогло.
Как видно из приведенного выше кода, я объявил newViewController как свойство, но если я этого не сделаю, произойдет то же самое.
Разве я не должен вообще добавлять представление ViewController к своему собственному представлению? Это действительно испортило бы мой проект, так как у меня есть много viewControllers, делающих все виды вещей.
Любая помощь по этому вопросу будет принята с благодарностью ...