Когда приложение, над которым я работаю, устанавливается либо через Ad-Hoc через iTunes, либо создается непосредственно на устройстве, при первом запуске единственный контроллер представления в моем приложении, который реагирует на изменения ориентации, не получает вызовов shouldAutorotateToInterfaceOrientation:
с переданным аргументом ландшафта; отладка показывает, что он вызывается только для портрета. Каждый последующий запуск ведет себя так, как я и ожидал, то есть есть вызовы shouldAutorotateToInterfaceOrientation:
, сделанные как с аргументами альбомной, так и портретной ориентации. Это точное поведение можно увидеть в симуляторе iPhone, на iPhone и iPod touch.
Итак, мой вопрос: почему уведомления об ориентации при первом запуске приложения будут отличаться от уведомлений при каждом последующем запуске? Я ошибаюсь, полагая, что не могу контролировать изменения ориентации, кроме ответа на shouldAutorotateToInterfaceOrientation:
?
Внутри рассматриваемого ViewController:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { return YES; }
and inside of viewDidLoad
and viewDidUnload
I've got (respectively):
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];and
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
Обновление от 6 июля 2010 г.
Все еще не удалось решить проблему. Я ненадолго забыл об этой проблеме и вернулся к ней, но все еще вижу проблему при совершенно других обстоятельствах. Кто-нибудь?
Обновление от 13 июля 2010 г.
От Apple См. Руководство по программированию контроллера:
"... объект окна выполняет большую часть работы, связанной с изменением текущей ориентации. [...] В частности, он работает с контроллером представления, корневое представление которого было недавно добавлено в окно или представлено в нем. В других случаях словами, объект окна работает только с самым передним контроллером представления, представление которого было отображено ... "
Я добавляю корневой контроллер представления в окно по-разному при первом запуске по сравнению с каждым последующим запуском, поэтому я подумал, что, возможно, это как-то связано с этим. Мне еще предстоит что-либо отсюда отследить ... просто мысль.
На момент этого обновления у этой штуки было около 175 просмотров ... ни у кого нет даже самого малоизвестного предложения? Давай, брось что-нибудь туда. Я готов принять любые догадки или предложения на данный момент. Меня не волнует, тупо ли это непонятно или потенциально неуместно.