initwithnibname이 UIViewController 하위 클래스에서 작동하지 않는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1068368

문제

UIViewController를 새 클래스 인 PageViewController로 서브 클래스로 만들었습니다 (간단한 책 앱을 작성하고 있습니다). NIB 파일에서로드 된 새 뷰를 추가하고 다음 코드를 사용하고 싶습니다. 효과가있다.

PageViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];

그러나 PageViewController에서 Alloc을 호출해야하기 때문에 첫 번째 줄은 잘못되었습니다. 수정하면 (아래) 코드가 컴파일되지만 XIB 파일은로드되지 않으며보기는 투명합니다.

    PageViewController *viewController1 = [[PageViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];

PageViewController initwithNibName 메소드가 무책임했으며 기본값 일뿐입니다.

내가 시도한 내용 : Page1 NIB 파일에서 PageViewController와 UIViewController 사이에서 파일 소유자 클래스를 변경하려고 시도했습니다. 예, 나중에보기 콘센트에 다시 연결하는 것을 기억했습니다.

도와주세요! 나는 그루칭 받았다.

도움이 되었습니까?

해결책

PageViewController의 LoadView 메소드를 재정의 했습니까? ViewController1.view를 nslog하면 어떻게됩니까?

실제로 인터페이스 빌더에서는 파일의 소유자를 PageViewController로 설정하고 인터페이스 빌더에있는보기에 뷰를 연결해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top