iOS5 Storyboard UIViewController 어떤 init 메소드가 스토리 보드에서 호출됩니까?


답변:


127

사용 된 이니셜 라이저는 initWithCoder:

- (id)initWithCoder:(NSCoder *)decoder

그런 다음 나중에 awakeFromNib메시지 도 받게됩니다 .


3
initWithCoder에서 default (?) init가 호출되지 않는 것이 이상하다는 것을 알게 된 유일한 사람입니까?
brianestey

2
아니요, 지정된 init가 아닙니다. inits는 (일반적으로) 더 많은 매개 변수를 사용하여 다른 init를 호출해야합니다. 그러면 [super init]를 호출합니다. 이 경우 initWithCoder가 지정된 init 인 것 같습니다
MrJD

7
initWithCoder : NSCoding을 구현하는 모든 클래스의 지정된 초기화 프로그램입니다.
Jon Hess

5

나는 그것을 믿는다 awakeFromNib


awakeFromNib도 UIViewControllers.storyboard 파일 ( "이전"펜촉과 동일)에 "통조림"되어 있기 때문에 호출됩니다.
Besi

awakeFromNibinit*메서드 의 차이점 (중요 할 수 있음) 은 인스턴스를 반환하지만 awakeFromNib그렇지 않다는 것입니다.
Matthew

0

그것은 - (id)initWithCoder:(NSCoder *)decoder

따라서 사용자 지정 초기화를 수행해야하는 경우 사용자 지정 호출기 컨트롤러를 사용한다고 가정 해 보겠습니다.

    - (id)initWithCoder:(NSCoder *)decoder {

        self = [super initWithCoder:decoder];
        return [self initWithViewControllers:@[self.playerViewController, self.categoriesViewController]
                  andTitles:@[@"Player",@"Categories"]];
    }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.