iPad ios6中的方向问题

Posted

技术标签:

【中文标题】iPad ios6中的方向问题【英文标题】:Orientation issue in iPad ios6 【发布时间】:2013-03-01 05:29:31 【问题描述】:

我在viewDidAppearviewWillAppear 中检查设备的方向,并通过调用willAnimateRotationToInterfaceOrientation 方法强制方向。

 - (void) viewWillAppear:(BOOL)animated
   
     [super viewWillAppear:YES];
     _levelComplete = YES;

     [self willAnimateRotationToInterfaceOrientation:[[UIDevice currentDevice] orientation] duration:0.01];

   

 - (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
  
      if (toInterfaceOrientation == (UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight) )
     

     
     else  if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
     

     
 

我面临的问题是toInterfaceOrientation 对于viewDidAppearviewWillAppear 方法都为0,因此程序崩溃。

可能是什么问题?

请帮忙!

【问题讨论】:

【参考方案1】:

试试这个

    - (void) viewDidLoad
       
         _levelComplete = YES;

        [self adjustViewsForOrientation:self.interfaceOrientation];

       
    -(void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation
   

      if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown)
        

        
        else
        
        
 

【讨论】:

完美运行!谢谢 :) 问题出在 [[UIDevice currentDevice] 方向]【参考方案2】:

正如您所提到的:我面临的问题是 viewDidAppear 和 viewWillAppear 方法的 toInterfaceOrientation 仍然为 0,因此程序崩溃。

方向 0 表示未知方向。在 viewWillAppearviewDiddAppear 以及定向代表上设置断点。请注意,方向的委托是否首先被调用视图委托。

你可以使用委托

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation


  return UIInterfaceOrientationLandscapeLeft;

使用此委托,应用程序将以横向模式或任何所需的方向模式显示。

试试看。

【讨论】:

即使设备处于纵向模式,您的代码也会强制使用横向模式。 是的。您可以在委托中提供所需的任何方向。如果需要,您甚至可以强制使用纵向模式。 我想根据设备方向更改视图方向!我不想强制一个方向。 是的。它将强制执行所需的方向。您可以通过 self 类的 interfaceOrientation 属性获取当前方向.. 另外,方向 0 通常来自模拟器。不在设备上。

以上是关于iPad ios6中的方向问题的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上的 UIViewController 处理方向 iOS 6.0

在 ios6 下横向启动应用程序同时支持所有方向

iOS 6 Beta 3 (ipad 3) 中的 UIAlertView 似乎不会触发委托中的代码

无法在 ipad 应用程序中设置方向

php中的ipad方向检测?

ipad ios 5.1 中的界面方向问题