UIViewController shouldAutorotateToInterfaceOrientation не работает должным образом - PullRequest
1 голос
/ 02 декабря 2011

Хорошо, я не совсем уверен, если я объясню это достаточно, но здесь это идет.

В моем приложении у меня есть несколько viewControllers, которые добавляются и удаляются для отображения разных представлений, и так далее, и так далее. Некоторые из этих контроллеров я хочу разрешить вращать, в то время как другие я хочу только, скажем, в портретном режиме.

Однако, когда я иду и изменяю shouldAutorotateToInterfaceOrientation, чтобы вернуть ДА для желаемой ориентации, или даже просто всегда возвращаю ДА, ничего не происходит, когда я поворачиваю устройство в некоторых видах.

Первое представление, которое я добавляю в приложение, будет вращаться правильно и выполняет то, что я хочу, но любое последующее представление, которое я добавляю в окно, просто не хочет вращаться так, как нужно.

Я установил свой родительский вид (основной UIWindow) на autoresizeSubViews, но все равно ничего.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Я обнаружил, что моя проблема с этим состояла в том, как я просто реализовывал свои переходы и добавлял новые виды на экран. Раньше я просто брал viewcontroller viewcontroller и добавлял его в качестве подпредставления к основному виду, поэтому единственное, что могло контролировать вращение, - это основной viewcontroller. Я не знал о существовании [self.navigationcontroller pushviewcontroller]. Так что да, это то, что я использую сейчас, и это делает именно то, что мне нужно сделать.

0 голосов
/ 27 февраля 2012

Вид, вы хотите разрешить вращение, вам нужно реализовать shouldAutorotateToInterfaceOrientation с return YES; для каждого вида!Это должно работать, однако, если вы не хотите разрешать ландшафтный режим, то можете return NO; для ландшафтного режима.(Режим по умолчанию - портретный).

...