屏幕方向更改调用意外的viewDidLoad

时间:2015-03-19 09:43:15

标签: ios objective-c uiviewcontroller uiinterfaceorientation viewdidload

我有一个带有两个视图控制器的应用程序,即vc1vc2。我还有一个导航控制器。我希望vc1处于纵向方向,vc2处于横向方向。为此,我使用以下代码vc1

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

并关注vc2

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

以下是我的工作:

  1. 应用vc1以纵向方向启动应用。
  2. 点击vc1按钮,我会导航至vc2
  3. vc2屏幕旋转到lansdcape右方向。
  4. 在此之前一切正常,然后我使用导航控制器的后退按钮返回vc1,这会触发viewDidLoad的{​​{1}}。为什么会这样?我回到vc2如何vc1再次加载?

    注1:如果两个屏幕的方向相同(纵向或横向),则不会发生此行为。

    注2:我不认为这个问题与我如何设置方向有关。因为我尝试使用vc2,我可以说,如果supportedInterfaceOrientationsvc1的方向不同,那么当我从vc2返回vc1时,vc2中的viewDidLoad运行。

0 个答案:

没有答案