내 메인 뷰 컨트롤러 내에 컨테이너 뷰를 설정했습니다. 인터페이스 빌더를 통해 구성했습니다. 메인 뷰 컨트롤러는 컨테이너 뷰를 가지고 있고, 컨테이너 뷰의 컨트롤러에서 작업을 처리하기위한 커스텀 클래스 (UIViewController에서 파생 됨)가 있습니다. 컨테이너보기에 모든 위젯을 배치했으며 모두 잘 작동합니다. 이제 다른 뷰 컨트롤러에서 동일한 코드를 재사용하려는 경우를 찾았습니다.
그래서 코드가 맞는지 확인하기 위해 다음과 같이 시작했습니다.
iPad_Expansion_ContViewController *kaufer = [iPad_Expansion_ContViewController new];
[gameController addChildViewController:kaufer];
kaufer.view.frame = CGRectMake(100, 200, 500, 500);
kaufer.view.backgroundColor = [UIColor blueColor];
[gameController.view addSubview:kaufer.view];
[gameController.view bringSubviewToFront:kaufer.view];
[kaufer didMoveToParentViewController:gameController];
이것은 실제로 큰 파란색 상자를 만듭니다. 그러나 인터페이스 빌더를 통해 정의한 containerViewController의 내용을 어떻게로드 합니까? 다음과 같은 것이 필요하다고 생각하지만 Interface Builder를 통해 만든 NIB 이름을 어디서 찾을 수 있는지 모르겠습니다.
iPad_Expansion_ContViewController *kaufer = [[iPad_Expansion_ContViewController alloc] initWithNibName:@"???????" bundle:[NSBundle mainBundle]];
[gameController addChildViewController:kaufer];
[kaufer didMoveToParentViewController:gameController];
내 모든 웹 검색에서 NIB 이름을 찾는 것은 사소하고 분명한 것 같습니다. 하지만 아직 뭔가 빠진 게 있어요 ... 스토리 보드의 이름을 사용해 보았습니다. 그러나 kaufer의 모든 개체는 nil이었고 화면에보기가 나타나지 않았습니다.
음, 이것은 매우 힘든 오후였습니다. 나는 결국 미친 것은 아니었다 (적어도이 문제는 아니다) : 이전 버전보다 Xcode 6.4부터 스토리 보드에서 .xib 이름 viewController를 찾는 것이 훨씬 더 어렵습니다. 이 두 가지 질문은 문제를 완전히 해결하지는 못했지만 다시 움직이게하는 주요 단서를 제공했습니다.
STORYBOARD-식별자가있는 뷰 컨트롤러를 포함하지 않습니다 (khaliq의 답변)
그리고 더 이상 고민하지 않고 인터넷에 다음 코드 스 니펫을 공개합니다.
UIStoryboard *storyboard = self.storyboard;
myCustomContViewController *kaufer = (myCustomContViewController *)[storyboard instantiateViewControllerWithIdentifier:@"shopper"];
[mainController addChildViewController:kaufer];
[mainController.view addSubview:kaufer.view];
[mainController.view bringSubviewToFront:kaufer.view];
[kaufer didMoveToParentViewController:mainController];
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다