인내심을 가지고 있습니다. 아직 Cocoa Touch를 배우고 있습니다. 질문을 호출하지 않는 다른 -viewDidLoad는 내 문제와 관련이 없으므로 검색을 수행했습니다.-viewDidLoad가 서브 클래 싱 된 UIViewController에서 호출되지 않았습니다.
나는 FooViewController
, UIViewController
하위 클래스를가집니다. FooViewController.xib의 File 소유자는 FooViewController로 설정되어 있습니다. 또한 Main
, 누구의 응용 프로그램 대리인은 MyApplication
이고 파일 소유자는 UIApplication
입니다. 내 기본 펜촉은 Main으로 설정됩니다.
UIWindow *main;
-(void)applicationDidFinishLaunching:(UIApplication*)application {
[self showFooViewController];
[main makeKeyAndVisible];
}
-(void)showFooViewController {
fooViewController = [[FooViewController alloc] init];
if(![[NSBundle mainBundle] loadNibNamed:@"FooViewController" owner:fooViewController options:nil]) {
DebugF(@"Failed to load FooViewController");
return;
}
// Add the view and put it in place
UIView *view = [fooViewController view];
CGRect cur = [view frame];
cur.origin = CGPointMake(0.0f, 20.0f);
[view setFrame:cur];
[main addSubview:[fooViewController view]];
}
그러나,이 메시지가 FooViewController
로 전송되지 않는 :
- (void) viewDidLoad {
DebugF(@"Hello!");
}
내가보기를 만들 수 있어요
은 (간결 냈다 코드)이 흐름을 사용하여 화면에 표시
gdb의 출력에서 전체 침묵.
IB의 문서보기에 인스턴스 등을 표시하는 다른 코코아 자습서를 보았지만이 옵션이 내 것으로 보이지 않습니다. Nib에서 fooViewController를 인스턴스화하기로되어 있습니까? 연결이 끊어 졌습니까? FooViewController.xib에서 File 's Owner 뷰는 Nib의 뷰에 연결됩니다.
이것은 간단한 해결책이라고 확신하며 잘못된 경로를 따라 걸어갔습니다. 하프!
설명서에 따르면 "이 메서드는 [loadView]를 직접 호출하면 안됩니다." –
고마워요, 피터 - 당신이 말하는 것을 봅니다. 누구나 Apple의 원본 소스를 읽고 싶다면 다음 링크를 참조하십시오. http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#// – Tyler
나는 정확히 같은 문제 (직접'loadView'를 호출했다), 정보를 주셔서 감사합니다. –