iphone 2.x sdk - ссылка на viewController внутри другого viewController, который отображается как нулевой - PullRequest
0 голосов
/ 02 мая 2009

Я пытаюсь дать вновь созданному экземпляру пользовательского контроллера представления выбора подобную ссылку на другой viewController (это внутри селектора из экземпляра ponceViewController, который вызывается после постукивания строки tableView) ...


- (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, он находится в моем заголовке и во всем, и я не могу получить к нему доступ метода initWithNibName timerPickerViewController - он всегда равен нулю. :( У кого-нибудь есть идеи?

Редактировать: Я должен также упомянуть, что ponceViewController также равен нулю внутри метода viewDidLoad timerPickerViewController ...

- (void)viewDidLoad {
  ... no such thing as ponceViewController here! ...
}

1 Ответ

1 голос
/ 03 мая 2009

Так что я исправил это, полностью удалив initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil из timerPickerViewController и использовал вместо него viewDidLoad. Кажется, все работает нормально. Я думаю, проблема заключалась в том, что свойство еще не было доступно при ссылке на него внутри initWithNibName. Надеюсь, что это поможет кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...