0

我正在尝试为自定义选择器视图控制器的新创建实例提供对另一个视图控制器的引用(这是在点击 tableView 行后调用的 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,它在我的标题和所有内容中,我似乎无法在 timerPickerViewController 的 initWithNibName 中访问它方法 - 它始终为空。:( 有人有想法么?

编辑:我还应该提到,在 timerPickerViewController 的 viewDidLoad 方法中 ponceViewController 也是 null ......

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

1 回答 1

1

所以我通过initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil从 timerPickerViewController 中完全删除并改用它来修复它viewDidLoad。一切似乎都很好。我认为问题在于在内部引用该属性时该属性尚不可用initWithNibName。希望对其他人有所帮助。

于 2009-05-03T04:26:24.480 回答