Проблема ориентации в Iphone - PullRequest
0 голосов
/ 15 ноября 2010

Привет всем Я реализую приложение, которое использует TabBar и Navigation Controller. В этом приложении мне нужно изменить ориентацию конкретного вида (вид фотогалереи в моем приложении) (хочу реализовать функциональность ориентации). Я установил логическое значение YES во всех инструкциях контроллера представления. при этом все представления вращаются. Я просто хочу повернуть только один конкретный вид. Кто-нибудь есть идея об этом Pls Ответить.

Заранее спасибо .... :)

Ответы [ 3 ]

1 голос
/ 21 ноября 2010

Я начал с нового приложения панели вкладок, затем создал класс «MyTabBarController» (производный от UITabBarController) и изменил MainWindow.xib, чтобы использовать MyTabBarController вместо UITabBarController.Затем я добавил следующий код в MyTabBarController:

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
    BOOL result = interfaceOrientation == UIInterfaceOrientationPortrait;
    if (self.selectedIndex == 0)
        result = YES;
    return result;
}

Как только я это сделаю, будет вращаться только первый контроллер представления, а второй - нет.

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

1 голос
/ 15 ноября 2010

Единственными представлениями, которые должны возвращать «YES» для shouldAutoRotateOrientation, являются те, которые действительно хотят вращаться. Обратите внимание, что это означает, что иногда контроллеры навигации и панели вкладок возвращают YES, а иногда они должны возвращать NO.

На самом деле я этого не пробовал, но настрою и посмотрим, что получится ...

0 голосов
/ 17 ноября 2010

Вы оцениваете ориентацию в mustAutorotateOrientation? если вы нацелены на телефон, ваша реализация должна выглядеть так, если вы хотите разрешить поворот на

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

и это во всех других видах

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
...