iphone 2.x sdk - ссылка на viewController внутри другого viewController, который отображается как нулевой
-
03-07-2019 - |
Вопрос
Я пытаюсь дать вновь созданному экземпляру пользовательского контроллера представления выбора подобную ссылку на другой 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! ...
}
Решение
Поэтому я исправил это, полностью удалив initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil
из timerPickerViewController и вместо этого использовал viewDidLoad
. Кажется, все работает нормально. Я думаю, проблема заключалась в том, что свойство еще не было доступно при обращении к нему внутри initWithNibName
. Надеюсь, что это поможет кому-то еще.