2013-08-28 1 views
0

탐색을 위해 5 개의 탭이있는 UITabController를 사용하는 응용 프로그램을 만들고 있습니다. 지금 내 앱은 앱로드시 초기보기로 첫 번째 탭을로드합니다.UITabController를 사용하여 뷰를 표시하기 전에 초기 뷰 만들기

초기보기로 내 UITabController를 사용하지 않는보기가 있으므로 변경할 수 있기를 원하고 일단 단추를 클릭하면 처음보기로 가져와 TabController를 표시합니다 .

나는 새로운 뷰를 설정하고 초기 뷰 컨트롤러로 바꾸고 버튼에서 TabController까지 segue를 가지고 있다고 생각했지만,로드 한 버튼으로보기를 시도했을 때 먼저 버튼을 클릭하면 NavigationController를 설정해야한다는 내용이 나옵니 까? 여기에서 무엇을해야할지 모르겠습니다.

답변

1

나는 탭바 컨트롤러를 윈도우의 루트보기 컨트롤러로 두는 것이 가장 좋습니다. presentViewController : animated : completion :을 사용하여 컨트롤러의 viewDidAppear 메서드에서 첫 번째 탭의 초기 뷰 컨트롤러를 표시 할 수 있습니다. animated 매개 변수를 NO로 설정하면 초기 뷰가 사용자에게 표시됩니다. 해당보기를 완료하면 해당보기를 닫고 첫 번째 탭의보기로 돌아갑니다.

+0

시도해 보았지만 제대로 작동하지 않았습니다. 이것을 첫 번째 탭의 .m 파일에있는 viewDidLoad에 넣습니다. UIViewController * masterView = [[MainViewController alloc] init]; [self presentViewController : masterView animated : 완료 없음 : 없음]; 오류는 없지만 콘솔에 다음과 같은 내용이 표시됩니다. arning :보기가 창 계층 구조에 있지 않은 에 표시하려고 시도했습니다! 또한 진입 점이 없기 때문에 Scene에 도달 할 수없고 instantiateViewController – user2122206

+0

@ user2122206을 통해 런타임에 액세스 할 수있는 식별자가 없습니다. 첫 번째 오류는 viewDidAppear 대신 viewDidLoad에 코드를 삽입했기 때문입니다. 대답. 두 번째 오류는 스토리 보드에 장면을 만들었고 컨트롤러에 식별자를 제공하지 않았기 때문입니다. masterView가 스토리 보드의 해당 컨트롤러 인 경우 MainViewController * masterView = [self.storyboard instantiateViewControllerWithIdentifier : @ "여기의 식별자"]를 사용하여 인스턴스화해야합니다. alloc 초기화가 아닙니다. – rdelmar

+0

당신은 천재입니다. 너무 고맙습니다. – user2122206

관련 문제