View Builder nib의 기본 View Outlet을 Interface Builder에서 설정하는 데 문제가 있습니다. 여기 내 설정이다 :UINavigationController NIB는 파일의 소유자에게보기 권한이 필요합니까?
MenuController.xib File's Owner (MyNavCtrlrSubClass : UIViewController) Navigation Controller (UINavigationController) Navigation Bar (UINavigationBar) Root View Controller (Nib Name is set to load AnotherViewController.nib) Navigation Item -> (UINavigationItem)
이 모든 :
내가 모달보기로 탐색 컨트롤러를로드합니다 TabBar의 기반 응용 프로그램 ...
MyNavCtrlrSubClass *menu = [[MyNavCtrlrSubClass alloc]initWithNibName:@"MenuController" bundle:nil];
[tabBarController presentModalViewController:menu animated:anim];
MenuController 자체는 다음과 같이 구성되어 있습니다 MyNavCtrlrSubClass가로드 될 때를 제외하고는 잘 작동하지만 다음과 같은 오류가 발생합니다.
분명히 이런 일이 일어나고 있습니다. File 's Owner에는 뷰를위한 콘센트 연결이 없습니다. 질문은 내가 그 견해로 무엇을 설정해야 하는가? 무엇인가가 처음에 설정되어야 하는가? 네비게이션 바는 MenuController.xib의 유일한 후보이지만, 이렇게하면 UINavigationBar 자체의 크기를 전체 화면 모드로 바꿀 수 있습니다.
분명히 IB에 뭔가 빠져 있는데, 뭐라 구요? MyNavCtrlrSubClass.m에는 UINavigationController의 IBOutlet을 제외하고는 코드 자체가 없습니다. IB에서 전적으로 이것을 설정하려고 실수하고 있습니까? 아이디어는 하나의 펜촉에 모달 네비게이션 컨트롤러를 유지하고 모든 뷰는 별도의 펜촉으로로드하지만 MenuController는 네비게이션 용 컨테이너이며 뷰 자체가 포함되어 있지 않으므로 분명히 잘못 설계하고 있습니다. :)
내가 왜 다른 방식으로 설계하지 않는지 궁금하다면, IB가 이상적인 계층 구조를 구축하도록 요청하는 방법에 대한 (아마도 잘못 생각한) 인식에 복종하려고하기 때문입니다.
도움을 주시면 감사하겠습니다.
유익한 답변을 보내 주셔서 감사합니다! 나는 이것으로 무엇을 할 수 있는지를 곧 알게 될 것이며 곧 다시 올 것이다. 지금 당장 물어 봅시다. Interface Builder에서 가능한 한 많이 디자인하는 모달 Navigation Controller 펜촉을 어떻게로드 하시겠습니까? 예제에서와 같이 View Controller 코코아를 설정 한 다음 프로그래밍 방식으로 Navigation Controller를 만들거나 IB에서 뷰 계층 구조 만 정의 할 수 있습니까? –
참고 : 프로그래밍 방식으로 탐색 컨트롤러를 만드는 것이 프로그래밍 방식으로 자체보기 컨트롤러 계층을 설정해야한다는 것을 의미하는 것입니다. 그런 다음 탐색 컨트롤러를 시작으로 IB에서 멀리 떨어져 있습니다. –
코드에서 탐색 컨트롤러와 루트보기 컨트롤러를 만들고 IB의 루트보기 컨트롤러에 대한보기를로드 할 수 있습니다. 어색하지 않습니다. 네비게이션 컨트롤러를 만들 수도 있습니다. 루트 컨트롤러는 루트 컨트롤러의보기와 별도의 XIB에 있습니다. 이 별도의 XIB는 일반적으로 MainWindow.xib입니다. MainWindow.xib 파일이로드되면 두 개의 뷰 컨트롤러가 생성됩니다. 루트 뷰 컨트롤러가 먼저 뷰를 필요로하면 두 번째 XIB 파일에서 뷰를로드합니다. 이것이 일반적인 방법입니다. –