我正在开发一个应用程序,我在其中为纵向和横向模式设置不同的笔尖。我的应用程序为纵向和横向两种方向旋转,但面朝上/面朝下。
当我将设备面朝上/面朝下时,它没有显示任何笔尖。我使用逻辑进行了妥协,并以这种方式在 viewWillAppear 中以编程方式设置设备方向
-(void)viewWillAppear:(BOOL)animated
{
if ([[UIDevice currentDevice] orientation]==UIDeviceOrientationUnknown || [[UIDevice currentDevice] orientation]==UIDeviceOrientationFaceUp || [[UIDevice currentDevice] orientation]==UIDeviceOrientationFaceDown)
[self shouldAutorotateToInterfaceOrientation:UIDeviceOrientationPortrait];
else
[self shouldAutorotateToInterfaceOrientation:[[UIDevice currentDevice]orientation]];
}
当这个视图控制器加载时,这个逻辑工作得很好但是在从这个视图控制器导航到另一个视图控制器之后,当我回到这个视图控制器时(通过调用popViewControllerAnimated:方法),所有上述语句都能正确执行(它执行 IF语句)并设置纵向笔尖但不旋转设备。它在横向模式下设置肖像笔尖。
我的 shouldAutorotateToInterfaceOrientation 方法看起来像这样
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if ((interfaceOrientation == UIDeviceOrientationLandscapeLeft) || (interfaceOrientation == UIDeviceOrientationLandscapeRight))
{
// code to set landscape nib
// there is no error in this code and it works properly
}
else if ((interfaceOrientation == UIDeviceOrientationPortrait) || (interfaceOrientation == UIDeviceOrientationPortraitUpsideDown))
{
//code to set portrait nib
// there is no error in this code and it works properly
}
return YES;
}
我在很多网站上搜索并应用了他们所有的逻辑,但没有一个工作。请帮助我解决这个问题。
感谢。