我有 2 个组件,依赖 pickerView 。我有一个预览 UIImageView ,每次用户使用 pickerView 时都会改变(并触发 didSelectRow:inComponent: )。这和我预期的一样工作。

但是,我希望 pickerView 在应用程序启动时触发 didSelectRow: ,以便在用户看到 UIImageView 时有一个预览。在 viewDidLoad 中,当我尝试这样做时:

[self pickerView:picker didSelectRow:row inComponent:component]; // row and component have 0 values.

接下来发生的事情 - pickerView 显示为空白!删除此行,它再次完美运行。我也试过这个:
[picker selectRow: row inComponent:component animated:NO];

认为它会触发 didSelectRow: 但是它不会触发它并且我的 UIImageView 保持空白。

关于如何在没有用户帮助的情况下调用 didSelectRow: 方法的任何建议?

更新 :顺便说一下,选择器在另一个 UIView 中(不是主要的)。万一有关系。

最佳答案

didSelectRow:... 只有在用户交互选择了一行时才会被调用。如果您使用 selectRow:... 以编程方式选择一行,那么您必须添加自己的逻辑来更新其他组件,如 ImageView 。

该原则适用于许多其他委托(delegate)功能,例如tableView:didSelectRowAtIndexPath:

关于objective-c - 如何调用pickerView : didSelectRow: inComponent: without user interaction?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13075474/

10-14 20:40