Мое приложение основано на навигации и в основном работает в портретной ориентации, но один контроллер вида поддерживает как портретную, так и альбомную ориентацию. Теперь проблема заключается в том, что когда я нажимаю новый контроллер представлений из контроллера ландшафтного вида, новый контроллер представления также перемещается в ландшафтном режиме, хотя я хочу его в портретном режиме.iOS6.0 Pushing new viewController в портретной ориентации из ландшафтного видаController
Также, когда я контроллер pop view из ландшафтного контроллера, тогда в режиме портретного просмотра отображается всплывающий контроллер.
Я не знаю, что не так с моим кодом.
Вот мой фрагмент кода и информация, используемая для этой ориентации.
В файле info.plist я поддерживал поддержку для всех ориентации, но портрет upsidedown.
Я также добавил категорию для категории контроллера навигации, как показано ниже.
@implementation UINavigationController(Rotation_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
Я также создал подкласс UIViewController, который действует как суперкласс для всех классов. Вот методы ориентации для суперкласса.
@implementation ParentViewController
- (BOOL)shouldAutorotate{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
return UIInterfaceOrientationPortrait;
}
@end
И контроллер ориентации, который поддерживает пейзаж, как показано ниже.
@implementation LandscapeController
#pragma mark -
#pragma mark Orientation Methods
- (BOOL)shouldAutorotate{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskLandscape;
}
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return (toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
@end
Заранее спасибо.
У меня есть один образец, который может быть полезен для u.Send ur email id, я пришлю вам, что – Vidhyanand
Спасибо Vidyanand за ответ. Вот мой адрес электронной почты: [email protected] – kkumpavat
В моем примере первый вид - портрет, второй вид - пейзаж, а третий вид - портрет.delete ur email – Vidhyanand