无法将IBAction连接到xib

时间:2015-08-02 19:19:53

标签: xcode swift uitableview xib ibaction

我在swift https://github.com/uacaps/PageMenu中使用这个开源框架作为我的视图控制器。

我正在使用xib作为tableview单元格和tableview,如演示项目中所示。

然而,当我将我的按钮从tableview单元连接到表视图控制器时,Xcode不会让我。我正在处理NotificationTableViewCell和NotificationTableVC文件。

我已正确设置项目,可以启动和运行单元以及项目本身。但是,如果我无法连接按钮,则无法添加所需的功能。

当我从存储库克隆一些时,演示项目也有这种行为。我仔细研究了这些问题,似乎没有人提到将IBActions连接到视图的任何事情,所以我做了,但我认为有些东西我不知道。

我附加了屏幕截图,以帮助您查看我的问题。我也需要访问cellForRowIndexPath。

enter image description here

enter image description here

我的xib被赋予了我的表视图单元格的类,它仍然不允许我与tableview控制器进行交互。

enter image description here

2 个答案:

答案 0 :(得分:2)

好的,所以我找到了一个有效的解决方案。感谢Gurtej Singh。

以下是代码:

1)我在cellForRowIndexPath

中添加了这一行
cell.mybutton.addTarget(self, action: "declineRequest:", forControlEvents: .TouchUpInside)

2)现在,如果我编写一个名为declineRequest

的函数,我就可以访问该按钮

由于我想根据数据删除单元格,我使用此函数并添加Parse查询逻辑。

 func declineRequest(sender: UIButton) {
    var cell: NotificationsTableViewCell = sender.superview!.superview as! NotificationsTableViewCell
     .... }

答案 1 :(得分:1)

我认为你不能通过IB将表视图单元格元素连接到表视图控制器类(据我所知,这样做也不正确,因为会有多个单元格和重用性)。

将IB中的元素连接到Cell类(.h / .m),如果没有,请创建一个,如NotificationTableViewCell.m,然后从表视图中的委托方法访问connected元素控制器类。

希望这有帮助。