Iphone Orientation и 2 Nib-файла - PullRequest
       14

Iphone Orientation и 2 Nib-файла

6 голосов
/ 03 декабря 2010

Я пытаюсь создать приложение, в котором каждый контроллер представления (.h / .m) имеет 2 файла NIB ... один для портрета, другой для ландшафта.Является ли это «стандартным» способом поддержки ориентации, или я должен вручную настроить вид ориентации программно?Проблема, с которой я сталкиваюсь, заключается в том, что, когда пользователь меняет ориентацию, все виды сбрасываются (поэтому пользователь должен повторно вводить текстовые поля / ввод представлений).

Вот мой метод ориентации:

- (void) changeTheViewToPortrait:(BOOL)portrait andDuration:(NSTimeInterval)duration{

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];

if(portrait) {
    [[NSBundle mainBundle] loadNibNamed:@"myview-portrait" owner:self options:nil];
    [self setupLayout];
} else{
    [[NSBundle mainBundle] loadNibNamed:@"myview-landscape" owner:self options:nil];
    [self setupLayout];
}

[UIView commitAnimations];

}

1 Ответ

7 голосов
/ 03 декабря 2010

Apple предлагает несколько различных советов по поддержке нескольких ориентаций в своем Руководстве по программированию View Controller в разделе «Управление ориентацией интерфейса View Controller».Возможно, вы захотите прочитать этот раздел, чтобы увидеть, подойдет ли какое-либо из их предложений к вашим потребностям.

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

Чтобы решить вашу проблему с «сбросом» представлений, я бы предложил вам сохранить ссылку на данные, вводимые пользователем, когда они переходят от контроля к контролю.Затем, когда ваша ориентация изменится, вы можете снова заполнить элементы управления, чтобы пользовательский «прогресс» не был потерян.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...