我有一个导航控制器,我将按以下方式在UIViewController上添加
UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:self.homeViewController];
_centerViewNavigaionController = navController;
if (bIsDeviceOSVersion7) {
_centerViewNavigaionController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
}
else
{
_centerViewNavigaionController.view.frame = CGRectMake(0, -20, self.view.frame.size.width, self.view.frame.size.height+20);
}
[self.view addSubview:navController.view];
[self addChildViewController:navController];
它在iOS 7中运行良好,但在iOS6中 - HomeViewController(即此导航控制器的RootViewController)加载正常。但是当我将一个新的View Controller推到HomeViewController上,即RootViewController时,新的视图框架只在第一时间向上移动了20个像素。下次推它时工作正常。我查看了堆栈溢出但无法解决此问题。我该如何解决这个问题?
答案 0 :(得分:0)
而不是这样做
_centerViewNavigaionController.view.frame = CGRectMake(0,-20,self.view.frame.size.width,self.view.frame.size.height + 20);
您可以通过Interface Builder为viewcontroller对象下的直接视图/视图设置delta属性。否则你必须使用Autolayout来避免这种情况。