2011-04-20 56 views
0

我想提出一个通用的应用程序,但仅支持在iPad上旋转背景图片所以这里有云:变化时应用旋转

我有,有一个形象的背景视图。当用户旋转iPad时,我褪去willRotateToInterfaceOrientation中的这幅肖像图像,并用didRotateFromInterfaceOrientation中的横向图像替换图像,这非常棒! (如果我想听到更好的方法,但这个问题不是这个问题)。

我在这个视图上有一个按钮,将推动堆栈上的一个新的视图控制器。该视图控制器也具有与它被推送的视图相同的“功能”。我需要帮助的是:当我从纵向(这是该视图的推送方向)旋转iPad到在该“第二”视图中横向显示图像时,会按预期进行更改。但是,当我从堆栈弹出这个viewcontroller“第一个”视图仍然显示为肖像,而不是风景的图像...我明白为什么,但不是我应该如何解决这个问题。

任何人都可以帮助我。感谢您的时间。

+1

您可以保存设备的方向(检查的UIDevice文档)在您的viewWillDisappear:并检查它在viewWillAppear中:方法,如果有必要调用动画。 – 2011-04-20 21:57:19

+0

@Marcelo是的,那是一种可能性。 – LuckyLuke 2011-04-20 22:01:44

+0

@Marcelo嗨,我确实实现了你所说的,我认为这是一个很好而简单的方法。谢谢。我认为你应该将你的评论转移到答案上,以便我可以接受它:) – LuckyLuke 2011-04-21 19:30:05

回答

1

您可以保存设备的方向(检查的UIDevice文档)上你的viewWillDisappear:并在viewWillAppear:方法上检查它,如果需要的话调用动画。

(在OP告诉我将它张贴作为答案)

0

使用第一个视图控制器的viewWillAppear方法。在那里,你可以通过调用[[UIDevice currentDevice] orientation]找到设备的方向并相应地设置背景图像。

1

您可以随时注册UIDeviceOrientationDidChangeNotification并在控制器不在顶层堆栈上时更改映像。

假设你正在使用一个UINavigationController(既然你提到推控制器),你可以计算出,如果控制器在顶部由:

if ([[self navigationController] topViewController] == self) { 
    // do magic 
}