iPhone 2.X SDK- 다른 뷰 콘트롤러 내부의 뷰 콘트롤러에 대한 참조 NULL로 표시
-
03-07-2019 - |
문제
새로 생성 된 사용자 정의 선택기 뷰 컨트롤러 인스턴스를 SO와 같은 다른 ViewController에 대한 참조를 제공하려고합니다 (TableView Row가 탭한 후 호출 된 PonceViewController 인스턴스의 선택기 안에 있습니다).
- (IBAction)rowTapped:(id)sender {
TimerPickerViewController *viewController = [[TimerPickerViewController alloc] initWithNibName:@"TimerPickerView" bundle:nil]
self.timerPickerViewController = viewController;
timerPickerViewController.ponceViewController = self.rootViewController;
[viewController release];
}
그런 다음 TimerPickerViewController 인스턴스 내부에 다음과 같습니다.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
...
// ponceViewController is null here
...
}
}
TimerPickerViewController는 "완료"버튼을 누른 후 PonceViewController의 재료에 액세스 할 수 있지만 PonceViewController를 종합하고 있는데 내 헤더에있는 모든 것에 액세스 할 수 있습니다. 방법 - 항상 null입니다. :( 누군가 아이디어가 있습니까?
편집 : 또한 PonceViewController가 TimerPickerViewController의 ViewDidload 메소드 내부에서 무효라고 언급해야합니다 ...
- (void)viewDidLoad {
... no such thing as ponceViewController here! ...
}
해결책
그래서 완전히 제거하여 고정했습니다 initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
TimerPickerViewController에서 사용되었습니다 viewDidLoad
대신에. 모든 것이 잘 작동하는 것 같습니다. 문제는 그 부동산을 내부에 참조 할 때 아직 사용할 수 없다는 것입니다. initWithNibName
. 그것이 다른 사람을 돕기를 바랍니다.
제휴하지 않습니다 StackOverflow