我在原型单元格的故事板中定义了一个UISegmentedControl。尝试将控件插入IBOutlet会导致Xcode错误“无法编译连接”。经过一番搜索后,我发现此错误消息是因为IBOutlet不能以这种方式与原型单元一起使用。有没有办法通过连接到控件的IBAction的id参数访问UISegmentedControl *?我将有多个表行,每行都包含自己的UISegmentedControl,所以我必须在IBAction中加入一些逻辑来区分它们。
答案 0 :(得分:0)
好的,我没有IBOutlet就可以使用它。我必须要做的是将每个UISegmentedControl
的标记设置为某种唯一的数字,以便在事物被触摸时解析出来。我是在cellForRowAtIndexPath方法的UITableViewController .m文件中完成的。 [mysegcontrol setTag:count];
然后我将IBAction连接到UISegmentedControl
,并在该方法中执行以下操作:
UISegmentedControl *usc = (UISegmentedControl *)sender;
NSInteger sidx = [usc selectedSegmentIndex];
NSString *stxt = [usc titleForSegmentAtIndex:sidx];
NSInteger tag = [usc tag];
NSLog(@"control text %@ tag %d", stxt, tag);
这样,我可以使用switch语句或其他任何内容来确定基于UISegmentedControl
的值命中的tag
;