我正在尝试为新创建的自定义选取器视图控制器实例提供对另一个viewController的引用,这样(这是在一个pseceViewController实例的选择器内部,在轻触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,它在我的标题和所有内容中,我似乎无法在timerPickerViewController的initWithNibName方法中访问它 - 它始终为null。 :(任何人都有任何想法?

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

- (void)viewDidLoad {
  ... no such thing as ponceViewController here! ...
}
有帮助吗?

解决方案

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top