この問題は私を夢中にさせています。viewDidLoad にロードした UIPickerView があり、画面に表示される選択された行を初期化する必要があります。私のコードは次のとおりです。
self.pickerSkins.delegate = self;
[self.pickerSkins reloadAllComponents];
NSLog(@"%d", [self.pickerSkins numberOfRowsInComponent:0]);
[self.pickerSkins selectRow:1 inComponent:0 animated:NO];
これをviewDidLoadに入れました。NSLog は 2 の値を記録します。ただし、ポップアップする選択された行は常に最初の行であり、2 番目の行ではありません。
selectRow を viewWillAppear に入れた場合も機能しません。
selectRow を viewDidAppear に配置すると、PickerView が表示され、2 行目に移動します。
更新: 2 行以上ある場合、最後の行までスクロールしない限り、メソッドは viewDidLoad から正しく機能します。最後の行までスクロールしている場合、メソッドはviewDidLoadまたはviewWillAppearでは機能しません。これはなぜですか?ありがとう。
ビューが表示される前に、選択した行を 2 行目にするにはどうすればよいですか?
ありがとう。