2

这个问题快把我逼疯了。我有一个在 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。但是,弹出的选定行始终是第一行而不是第二行。

如果我将 selectRow 放在 viewWillAppear 中,它也不起作用。

如果我将 selectRow 放在 viewDidAppear 中,则会出现 PickerView,然后转到第二行。

更新:如果我有超过 2 行,该方法从 viewDidLoad 正常工作,除非我滚动到最后一行。如果我滚动到最后一行,该方法永远不会在 viewDidLoad 或 viewWillAppear 中工作。知道这是为什么吗?谢谢。

在视图出现之前,如何使选定的行成为第二行?

谢谢。

4

0 回答 0