2011-11-20 3 views
0

빈 프로젝트 (Xcode 4.2 IOS SDK 5)를 만들었습니다. 새보기를 추가하고 appDelegate 안에 루트보기 컨트롤러를 만들었습니다. 앱이 실행이 제대로 그보기를 표시하지만, 나는 새로 만든 뷰 내에서 그것을 함께 IBOutlet을 만들어보기로 tabbarcontroller를 추가하고보기의 viewDidLoad 방법이 라인을 추가 : 그래서탭 막대가 시뮬레이터의 테두리 바깥쪽으로 이동되었습니다.

[self.view addSubview:self.tabController.view]; 

을 탭 막대는 iphone 시뮬레이터에서 올바르게로드되지만 문제를 해결할 수 없습니다. 탭 막대의 절반이 시뮬레이터 아래로 이동하여 탭 제목이 다음 스크린 샷과 똑같이 나타나지 않도록합니다 :

screenshot

이 문제를 어떻게 해결할 수 있습니까?

답변

2

상태 표시 줄 때문일 가능성이 큽니다. 당신이 컨트롤러를 삽입 서브 뷰는 크기가 될 수 있기 때문에 그러나, 가장 보편적 인 솔루션입니다 :

[tabController.view setFrame:self.view.bounds]; 

(가정 self.view - 한 당신이 그것을 추가보기)

+0

정말 고맙습니다. – JAHelia

1

탭 막대가있는보기는 480 픽셀이지만보기를 추가하는 것은 상태 막대 때문에보기보다 작습니다. 즉 화면이 22px로 너무 낮게 시작되고 22px가 너무 낮게 끝나는 것입니다 (화면 하단에서). 당신은 탭 표시 줄 응용 프로그램의 위임에 함께 IBOutlet 앱 링크가 글로벌 싶은 경우

, 다음 didFinishLaunching 방법에서이 작업을 수행 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    // ... 

    // Add the tab bar controller's view to the window and display. 
    [window addSubview:tabController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 

이 메인 창에 추가, 오히려 다른보기보다. 이렇게하면 화면 상단에 앵커가 표시되므로 하단이 화면 하단에 표시됩니다.

+0

하지만 엑스 코드에서 빈 응용 프로그램 템플릿 4.2에는 xib 파일이 없으므로 tabbarcontroller를 만들고 프로그래밍 방식으로 연결하고 싶지 않습니다. 대신 tabbarcontroller를 MainWindow.xib (예 : xcode의 이전 버전과 같은)에 배치하고 IBOutlet을 만들고 싶습니다. AppDelegate에서 Xcode 4.2에서이 작업을 어떻게 수행 할 수 있습니까? 추신. 그래서 그 tabbarcontroller 그것을 배치하는 xib 파일로 새보기 컨트롤러를 만든 것입니다 – JAHelia

관련 문제