0

カスタムピッカービューコントローラーの新しく作成されたインスタンスに、そのような別のviewControllerへの参照を与えようとしています(これは、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内ではアクセスできないようです。メソッド-常にnullです。:(誰かアイデアはありますか?

編集:ponceViewControllerがtimerPickerViewControllerのviewDidLoadメソッド内でも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 に答える