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