0


내 앱에 TabBarController가 있고 여기에 몇 개의 NavigationController가 있습니다. 인터페이스 빌더에서이 모든 것을 간단하게 만들었습니다.
는 지금은 그래서 클래스를 생성있는 navigationController 내 사용자 정의를 구현하려는 :사용자 지정 UINavigationController 구현

#import <UIKit/UIKit.h> 

@interface DetailNavigationController : UINavigationController 

@end 


@implementation DetailNavigationController 

- (id)initWithRootViewController:(UIViewController *)rootViewController 
{ 
    self = [super initWithRootViewController:rootViewController]; 
    if (self) { 
     NSLog(@"I work!"); 
    } 

    return self; 
} 

- (void) dealloc { 
    [super dealloc]; 
} 

@end 

그리고 인터페이스 빌더에서 내가 원하는 네비게이션 컨트롤러에 사용자 정의 클래스로이 클래스를 추가
. 이제 앱을 시작하고이 탐색 컨트롤러가있는 탭을 선택하면 작동하지만 initWithRootController는 호출되지 않습니다. 클래스를 완전히 무시하고 기본 탐색 컨트롤러로 실행됩니다.
인터페이스 빌더에서 더 많은 것을 지정해야합니까, 아니면이 컨트롤러를 프로그래밍 방식으로 탭바 대리자 어딘가에 지정해야합니까?
감사합니다.

답변

1

인터페이스 빌더에서 내비게이션 컨트롤러를 만드는 경우 initWithRootViewController:이 아니라 initWithCoder:을 무시해야합니다. xib에는 객체의 인스턴스화 된 버전이 들어 있으며, 루트 뷰 컨트롤러는 이미 설정되어 있습니다.

관련 문제