objective-c - UISegmentedControl setSelectedSegmentIndex 问题

标签 objective-c ios uikit ios-simulator

我对 UISegmentedControl 有一个奇怪的问题。
我正在使用以下方法设置选定的段索引:

[self.toolbarSegmentedControl setSelectedSegmentIndex:0];

所以问题是 - 点击处理程序:
- (IBAction)segmentedControlClick:(id)sender 

不在模拟器中调用,但在设备下通过此方法时调用它。为什么会这样?错误和正确的行为在哪里?

最佳答案

您的处理程序正在拦截事件 UIControlEventValueChanged .

当您更改 UIControl 的值时以编程方式,您不应指望此事件将被调用,因为只有用户交互应该发送 UIControl 的操作。

相反,如果您愿意,您可以自己调用它:

[self.toolbarSegmentedControl setSelectedSegmentIndex:0];
[self.toolbarSegmentedControl sendActionsForControlEvents:UIControlEventValueChanged];

这样就可以了。

关于objective-c - UISegmentedControl setSelectedSegmentIndex 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817988/

相关文章:

ios - UIScrollView 中的 UITextView 使用自动布局

iphone - UITableView,滚动后图标重复

objective-c - 导出带有淡入淡出音频的 QTMovie 的最佳方式

ios - UIViewController setView nil 自动从 superview 中移除

objective-c - 如何识别点击了tableview中的哪个单元格

android - React Native 中的日期格式化

ios - 使用 Swift 时出现错误 "nil requires a contextual type"

iphone - 当用户将文件拖到 iTunes 文件共享中并且同步完成时,有没有办法得到通知?

ios - 当从 UISplitViewController 显示时,UITableViewController 自动滚动停止考虑键盘

ios - 为什么 UIButton.addTarget 需要在表示操作的字符串后加上 ":"?