【问题标题】:How to wire-up UISegmentedControl from a prototype cell?如何从原型单元连接 UISegmentedControl?
【发布时间】:2013-10-03 01:41:09
【问题描述】:

我在原型单元中的情节提要中定义了一个 UISegmentedControl。尝试将控件插入 IBOutlet 会导致 Xcode 错误“无法编译连接”。经过一番搜索,我发现这个错误消息是因为 IBOutlet 不能以这种方式与原型单元一起使用。有没有办法通过连接到控件的 IBAction 的 id 参数访问 UISegmentedControl*?我将有多个表行,每个行都包含自己的 UISegmentedControl,因此我必须在 IBAction 中添加一些逻辑来区分它们。

【问题讨论】:

  • 您有自定义表格视图单元格吗?这是您尝试设置 IBOutlet 的类吗?
  • 是的,我有一个 TableViewController 故事板,其中包含两个原型单元,设置为一个自定义类,我一直在尝试连接 IBOutlet。我尝试将 IBOutlet 放入 .h 和 @synthesizing 以及放入 .m ,但都失败了。将 UISegementedControl 连接到 IBAction 可以正常工作,但尝试将其连接到 IBOutlet 会导致上述错误。

标签: ios uisegmentedcontrol


【解决方案1】:

好的,我在没有 IBOutlet 的情况下完成了这项工作。我所要做的就是将每个UISegmentedControl 的标签设置为某种唯一的数字,稍后当它被触摸时可以解析出来。我在我的 UITableViewController .m 文件中的 cellForRowAtIndexPath 方法中执行了此操作。 [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 语句或其他任何东西来根据 tag 的值确定哪个 UISegmentedControl 被命中;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多