1

我检查设备的方向,viewDidAppear并通过调用方法viewWillAppear强制方向。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都保持为 0, 因此程序崩溃。viewDidAppearviewWillAppear

可能是什么问题?

请帮忙!

4

2 回答 2

2

尝试这个

    - (void) viewDidLoad
       {
         _levelComplete = YES;

        [self adjustViewsForOrientation:self.interfaceOrientation];

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

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

        }
        else
        {
        }
 }
于 2013-03-01T05:35:33.067 回答
0

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

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

您可以使用委托

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{
  return UIInterfaceOrientationLandscapeLeft;
}

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

试试看。

于 2013-03-01T06:00:08.243 回答