iPad ios6中的定位问题

时间:2013-03-01 05:29:32

标签: ios objective-c ipad ios6 uiinterfaceorientation

我在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)
     {

     }
 }

我遇到的问题是,toInterfaceOrientationviewDidAppear方法viewWillAppear仍为0,因此程序崩溃。

可能是什么问题?

请帮助!

2 个答案:

答案 0 :(得分:2)

试试这个

    - (void) viewDidLoad
       {
         _levelComplete = YES;

        [self adjustViewsForOrientation:self.interfaceOrientation];

       }
    -(void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation
   {

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

        }
        else
        {
        }
 }

答案 1 :(得分:0)

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

方向0指未知方向。在viewWillAppearviewDiddAppear以及方向代表上设置断点。请注意,方向的delagates会首先调用视图委托。

您可以使用代理

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{
  return UIInterfaceOrientationLandscapeLeft;
}

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

试试吧。