2010-11-15 2 views
0

Привет всем Я реализую приложение, которое использует TabBar и навигационный контроллер. В этом приложении мне нужно изменить ориентацию определенного вида (просмотр галереи фотографий в моем приложении) (хотите, чтобы функциональность ориентации реализации). Я установил логическое значение «ДА» во всех случаях, когда необходимо контролировать управление. делая это, все виды вращаются. Я просто хочу повернуть только один конкретный вид. у кого-нибудь есть идея об этом.Проблема с ориентацией в Iphone

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

ответ

1

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

Я на самом деле не пробовал это, но установить его и посмотреть, что происходит ...

+0

Я уже сделал это, но он не работает ... –

+0

Это работает для меня. См. Мой новый ответ. –

0

Вы оценки ориентации в shouldAutorotateOrientation? если вы ориентируетесь на телефоне, ваша реализация должна выглядеть в представлении, что вы хотите, чтобы обеспечить вращение на

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

и это во всех других представлениях

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

Привет, друзья Спасибо за ваше замечательное предложение ... Я получил решение здесь –

+0

Pls кликнул по этой ссылке и перешел на страницу 42 этого pdf-файла ... Это работает для меня ... http: //docs.huihoo .com/apple/iphone/iphone-application-programming/06-ViewControllers.pdf –

+0

Pls игнорирует предыдущее решение и нажимает на эту ссылку http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ViewControllerPGforiPhoneOS.pdf –

1

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

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

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

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

Смежные вопросы