私はiPhone/iOSプログラミングを学ぼうとしています。表示されるとすぐに、選択した行をディスパッチする必要があるUIPickerViewがあります(flippSideViewに含まれています)。ちょうどロードされたUIPickerViewでselectRow:を呼び出すタイミングは?
残念ながら、flipSideViewControllerのawakeFromNib
は呼び出されません。 viewDidLoad
でやるのはやや遅すぎます。 これで、選択した行が表示されるとすぐにpickerViewに表示させることができますか?
アップデート:ここで
は、メソッドMySelectとがあり、私はフリップサイドコントローラではフリップサイドビュー
- (IBAction)showInfo:(id)sender {
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;
controller.uData = userData;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
controller.pickerView.delegate = userData;
controller.pickerView.dataSource = userData;
[controller release];
}// showInfo
を表示する方法です(私は呼び出しをトレーストレースを助けるために)
-(void) mySelect:(NSString*) strMethod{
int row = [uData getCurrentUserRow];
[pickerView selectRow:row inComponent:0 animated:NO];
NSLog(@"selectRow %d called from %@ (pickerView=%d uData=%d)", row, strMethod, (int)pickerView, (int)uData); }
プログラムを実行すると、ログが生成されます
selectRow 3 called from viewDidLoad (pickerView=87412720 uData=89267696)
selectRow 3 called from viewWillAppear (pickerView=87412720 uData=89267696)
selectRow 3 called from viewDidAppear (pickerView=87412720 uData=89267696)
は、あなたがのviewDidLoadを試してみましたか? –
'viewWillAppear:'に存在しないピッカービューをいつ、どこに追加しますか? –
はい、私はそれを試みました。間違った選択が短時間表示されるのがわかります。 – ragnarius