我已检查了其他答案,但还没有找到任何真正描述我的情况的东西。所以在这里。旧显示屏移位后模态视图控制器问题
我有一个基于窗口的应用程序,它可以从xib创建并加载UIViewController。它的状态栏被禁用,高度为480,UISegmentedControl的y原点为451.它很好地显示在屏幕底部。*
在UIViewController的viewDidLoad中,我创建了一个UIView initWithFrame:CGRectMake(0.0, 0.0, 320.0, 431.0)];
(即480 - 29像素UISegmentedControl和20的状态栏。)我将它添加到UIViewController与[self.view addSubview:gameBoard];
。然后,将一些UIView游戏片段添加为游戏板UIView的子视图,并且所有内容都按照我认为应该显示的内容进行显示。
当点击某些UIView子视图时,应该会出现一个菜单。我创建了一个具有所需控件的UIViewController。我使用委托方法从子视图,谁拿起触发事件来电,来根的UIViewController - 这确实
self.squadOrders = [[SquadOrders alloc] initWithNibName:@"SquadOrders" bundle:nil];
squadOrders.viewControllerDelegate = self;
[self presentModalViewController:squadOrders animated:YES];
和模态对话框显示,因为我认为它应该从下缘向上滑动该屏幕没有覆盖状态栏,而是覆盖了根UIViewController底部提到的UISegmentedControl。它得到解雇
[self dismissModalViewControllerAnimated:YES];
这就是麻烦开始的地方。 UISegmented控件向下移动20个像素,以便在屏幕底部只能看到9个像素。 视图向下移动的顶部有一个20像素的白色间隙。
*启用此xib或任何其他xib上的状态栏并不会改变所描述的行为。相关
其他计算器的问题是:
IPhone - After dismissing Modal View Controller - gap is left at top of page - 但所提供的解决方案是没有加载,显示模式视图控制器的子视图另一个视图控制器 - 但我不这样做,只是UIViews。还有一种建议,即在模式消失后重新设置适当的框架,但感觉就像是作弊。
Contents of UIScrollView shifted after dismissing ModalViewController - 我玩过所有视图和控制器的高度 - 确定它们匹配,没有帮助。此外,该框架可以重置,但只能解决症状。
还有其他的,但到目前为止没有任何解决这个问题。
看着self.view。在即将显示模式之前的帧,它是0,0,320,480。当模式被解除时,它变为0,20,320,460。希望有所帮助。 – 2010-01-30 03:46:22
我不相信有没有解决方案。 – ZaBlanc 2011-01-23 17:32:15