2014-09-17 1 views
0

난 내가 뭔가를 iOS6의 아이폰 OS 7 년 만에 잘 작동보기 컨트롤러를 밀면 iOS 6에서보기가 20 픽셀 씩 위로 이동합니까? HomeViewController (이 탐색 컨트롤러의 즉 RootViewController) 미세 하중 -

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]; 

다음과 같은 방법으로의 UIViewController에 추가하고있는 네비게이션 컨트롤러를 가지고있다. 그러나 새로운 View Controller를 HomeViewController 즉 RootViewController에 푸시하면 새 뷰 프레임이 20 픽셀 씩 위로 이동합니다. 다음에 그것을 밀어 때 잘 작동합니다. 스택 오버플로를 찾았지만이 문제를 해결할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까? 이 대신

_centerViewNavigaionController.view.frame = CGRectMake을하는

+1

보기의 우선 순위를 설정합니다. 즉, iOS 6에서는 y = 20이고 iOS7에서는 y = 0입니다. –

답변

0

(0, -20, self.view.frame.size.width, self.view.frame.size.height + 20);

viewcontroller 개체의 바로보기 /보기에 대해 Interface Builder를 통해 델타 속성을 설정할 수 있습니다. 그렇지 않으면 Autolayout을 사용하여 이러한 일을 피하십시오.

관련 문제