Когда приложение, над которым я работаю, устанавливается либо через Ad-Hoc через iTunes, либо создается непосредственно на устройство, при запуске в первый раз единственный контроллер просмотра в моем приложении, которое реагирует на изменения ориентации, не получает звонки на shouldAutorotateToInterfaceOrientation:
с переданным ландшафтным аргументом; отладка показывает, что это только для портрета. Каждый последующий запуск ведет себя так, как я ожидал, т. Е. Есть призывы к shouldAutorotateToInterfaceOrientation:
, сделанные как с пейзажными, так и с портретными аргументами. Это точное поведение можно увидеть в симуляторе iPhone, на iPhone и iPod touch.shouldAutorotateToInterfaceOrientation не работает при первом запуске после установки нового приложения
Итак, мой вопрос: почему ориентационные уведомления будут отличаться для первого запуска приложения, чем для каждого последующего запуска? Я ошибаюсь, полагая, что я не контролирую изменения ориентации, не реагируя на shouldAutorotateToInterfaceOrientation:
?
Внутри ViewController в вопросе:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { return YES; }
и внутри viewDidLoad
и viewDidUnload
я получил (соответственно):
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];и
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
Update 6 июля 2010:
По-прежнему не удаётся решить проблему. Я немного отбросил проблему и вернулся к ней, и я все еще вижу проблему в совершенно разных обстоятельствах. Кто угодно?
Update 13 июля 2010:
От компании Apple View Controller Programming Guide:.
»... объект окна делает большую часть работы, связанной с изменением текущей ориентации [...] В частности, он работает с контроллером представления, чей корневой вид был недавно добавлен или представлен в окне. Другими словами, оконный объект работает только с самым внешним контроллером представления, представление которого было отображено ... »
я добавив контроллер корневого представления в окно по-разному на первом запуске по сравнению с каждым последующим запуском, поэтому я подумал, что, возможно, это как-то связано с этим. Мне еще предстоит проследить что-то здесь, хотя ... просто мысль.
У этой вещи было около 175 просмотров во время этого обновления ... никто не имеет даже самого дальнего скрытого предложения? Давай, брось что-то там. Я готов принять любые догадки или предложения на этом этапе. Меня не волнует, глупо ли это или не имеет никакого значения.
Я имел все виды проблем с ориентацией UI, и видел много сообщений, что фиксируется в различных версиях. С какими библиотеками вы связываетесь? Возможно, попробуйте более позднюю библиотеку и посмотрите, лучше ли это. – Andiih
iPhone OS 3.0 и ссылка на http://i996.photobucket.com/albums/af85/jtrim/Screenshot2010-05-17at43542PM.png Я попробую увеличить мою цель сборки и посмотреть, как она идет – jtrim
Вы не необходимо вызвать begin/endGeneratingDeviceOrientationNotifications в контроллере представления. shouldAutorotateToInterfaceOrientation будет вызываться без этого. – progrmr