UISegmentedControl setSelectedSegmentIndex问题

Sta*_*tas 1 objective-c uikit ios ios-simulator

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

[self.toolbarSegmentedControl setSelectedSegmentIndex:0];
Run Code Online (Sandbox Code Playgroud)

所以问题是 - 点击处理程序:

- (IBAction)segmentedControlClick:(id)sender 
Run Code Online (Sandbox Code Playgroud)

不是在模拟器中调用,而是在传递此方法时调用它.为什么这样,错误和正确的行为在哪里?

Avi*_*ron 6

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

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

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

[self.toolbarSegmentedControl setSelectedSegmentIndex:0];
[self.toolbarSegmentedControl sendActionsForControlEvents:UIControlEventValueChanged];
Run Code Online (Sandbox Code Playgroud)

那样做.