iOS7 авторотиращи изгледи

Приложението ми изисква да поддържа както портретен, така и пейзажен режим, с изключение на един изглед само в портретен режим. Открих във форуми, че трябва да подкласирам контролера за навигация и след това да използвам метода SupportedInterfaceOrientations, за да се справя с него.

Но моето приложение има различно оформление, има контролер за раздели като rootview контролер и след това всеки контролер за раздели има свой собствен контролер за навигация. също имам изглед за влизане (за удостоверяване в приложението), представен на контролера на rootview. Сега проблемът е къде да добавя

- (BOOL)shouldAutorotate
{
   return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
   return UIInterfaceOrientationMaskPortrait;
}  

този код - в контролера за навигация или контролера Tabbar или в AppDelegate.


person User382    schedule 21.07.2014    source източник
comment
Кой изглед е този, който трябва да бъде само портретен? Изгледът за влизане ли е?   -  person matt    schedule 21.07.2014


Отговори (1)


Освен ако изгледът не е изгледът за влизане, не трябва да добавяте този код никъде. iOS 7 не поддържа отделни деца на контролера на лентата с раздели или контролера за навигация със специална ориентация.

В iOS 7 това ще работи за изгледа за влизане, ако поставите кода в изгледа за влизане, защото това е представен контролер за изглед и тази конфигурация се поддържа за контролери за представен изглед.

(В iOS 8, тъй като беше поставено до този момент, няма да работи дори за изгледа за влизане.)

person matt    schedule 21.07.2014
comment
Този изглед само в портретен режим не е изглед за влизане, а е изглед от Tabbar. Искате да кажете, че не мога да имам един елемент от лентата с раздели само в портретен режим и други елементи от лентата с раздели както в портретен, така и в пейзажен режим. - person User382; 21.07.2014
comment
Имам предвид това. Вижте например моя отговор тук: stackoverflow.com/a/15301322/341994 Това, което казвам за навигационните контролери, е еднакво вярно за контролерите на лентата с раздели. Това, което описвате, е възможно само в iOS 5 и по-стари версии. - person matt; 21.07.2014
comment
Как да създадете например приложения само за пейзажен изглед, ако горното е вярно. Ако посочите Поддържана ориентация на устройството в Info.plist, тогава тя трябва да се приложи към всички изгледи, без значение дали е лента с раздели, лента за навигация или изглед на модел. - person User382; 22.07.2014
comment
Това е вярно. Ако цялото приложение е ограничено до пейзаж, цялото приложение е ограничено до пейзаж. Но ако един изглед ще се появи в портретен режим, не можете да направите това: цялото приложение трябва да позволява пейзаж и портрет. И в този случай никой изглед, освен представен изглед, не може да принуди завъртане. Моля, прочетете отговора, който ви посочих. И вижте пълното ми обяснение тук: apeth.com/iOSBook/ch19.html#_rotation - person matt; 22.07.2014