2012-09-18 2 views
0

의 낮은 버전에서보기를 위로 이동하면 AppDelegate 방법의 ViewController 클래스를로드[self.window addSubview : [_ viewController view]]; 나는 보편적 인 application.I 일하고 아이폰

self.window.rootViewController = self.SecondViewController

을 사용하고 있습니다. 이 코드 줄은 ios 버전 4 이상에서는 제대로 작동하지만 ios 3.1.3에서 실행하면 충돌이 발생합니다.

코드를 [self.window addSubview:[SecondViewController view]]으로 바꿨지 만 처음에는 앱을로드 할 때 화면이 위로 움직입니다 (스크린 샷과 같이). 그래서 친절이 문제 을 극복 할 수 있도록

당신은 rootViewController 속성은 아이폰 OS 4.0에 도입 된 enter image description here

+0

이유 ... 1. Xcode 태그를 사용합니까? (이제 태그 wiki를 읽으십시오!) 2. iOS 3를 지원 하시겠습니까? –

+0

처음으로 장치 버전을 확인하십시오. 장치 버전에 따라 코드를 사용하십시오. – Ayaz

+0

@Ayaz : ios 3.1.3을 사용하고 있습니다.보기가 위로 올라와 내 앱이 이상하게 보입니다. – sujay

답변

3

, 즉 아이폰 OS 3.1.3의 충돌에 대한 이유입니다 감사합니다.

[self.window addSubview:[SecondViewController view]]을 사용하면보기 컨트롤러보기가 상태 표시 줄에 맞게 조정되지 않을 수 있습니다. 좋은 설명은 Offset on UIWindow addSubview을 참조하십시오.

이 솔루션은 서브 뷰로 추가하기 전에 귀하의 경우

self.SecondViewController.view.frame = [UIScreen mainScreen].applicationFrame; 

에, 뷰의 프레임을 할당하는 것입니다.

+0

좋은 것 :) 고맙습니다. – Nishant

2
SecondViewController.view.frame = CGRectMake(0, 20, 320, 460); 
[self.window addSubview:[SecondViewController view]] 
관련 문제