2010-04-15 2 views
0

a короткий вопрос.UIView Animation: PartialCurl ... ошибка во время поворота?

Я создал приложение для iPad, как приложение для iPhone (один mainView, один flipSideView). Анимация между ними - UIModalTransitionStylePartialCurl. shouldAutorotateToInterfaceOrientation возвращает ДА.

Если я поворачиваю устройство ПЕРЕД тем, как войти в FlipSide, все в порядке, и PartialCurl отображается в порядке. Но если я войду в FlipSide, а затем поверните устройство, в то время как UIElements повернуть и позиционировать себя очень хорошо, фактический «завиток страницы» остается с его начальной ориентацией. он просто не сдвинется с места :)

Это известная проблема? Я делаю что-то неправильно? Спасибо!

ответ

0

У меня тоже была эта проблема и несколько сдался. Тем не менее, я упомянул о своей дилемме другу, который побудил меня заглянуть в логику ребенка VC, и я вспомнил удобный трюк, который я использовал для передачи данных между родительскими/дочерними контроллерами представлений.

В вашем контроллере просмотра с переворачиванием создайте свойство «rootViewController». В контроллере зрения родителя, при инициализации контроллер представления оборотного, вы установили (где «я» является rootVC):

flipsideController.rootViewController = self; 

Вы затем использовать для обратной стороны метод shouldAutorotateToInterfaceOrientation ОК:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return interfaceOrientation == self.rootViewController.interfaceOrientation; 
} 

Виола! Вид с тыльной стороны больше не вращается под частично свернутым родительским видом!

0

Самый короткий путь выше код:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return interfaceOrientation == self.parentViewController.interfaceOrientation; 
} 
Смежные вопросы