iPhone 2.X SDK- 다른 뷰 콘트롤러 내부의 뷰 콘트롤러에 대한 참조 NULL로 표시

StackOverflow https://stackoverflow.com/questions/815422

문제

새로 생성 된 사용자 정의 선택기 뷰 컨트롤러 인스턴스를 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. 그것이 다른 사람을 돕기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top