无法将 IBAction 连接到来自 xib 的 table 视图
Cannot connect IBAction to table view from xib
我在 swift https://github.com/uacaps/PageMenu 中将这个开源框架用于我的视图控制器。
我将 xib 用于 table 视图单元格和 table 视图,如演示项目中所示。
但是,当我将我的按钮从 table 视图单元连接到 table 视图控制器时 Xcode 不允许我这样做。我正在处理 NotificationTableViewCell 和 NotificationTableVC 文件。
我已经正确设置了项目,可以启动单元和 运行 以及项目本身。但是,如果我无法获得连接按钮,我将无法添加所需的功能。
当我从存储库中克隆一些时,演示项目也有这种行为。我查看了这些问题,似乎没有人提到任何关于将 IBAction 连接到视图的事情,所以我做了,但我认为我遗漏了什么。
我已附上屏幕截图以帮助您查看我的问题。我还需要访问 cellForRowIndexPath。
我的 xib 被赋予 class 我的 table 视图单元格,它仍然不允许我与 table 视图控制器交互。
我认为您无法通过 IB 将 table 视图单元格元素连接到 table 视图控制器 class(据我所知,它不是这样做也是正确的,因为会有多个单元格和可重用性)。
将 IB 中的元素连接到您的 Cell class (.h/.m),如果没有,请创建一个,例如 NotificationTableViewCell.m,然后访问连接的元素来自 Table 视图控制器 class 中的委托方法。
希望对您有所帮助。
好的,所以我找到了可行的解决方案。感谢 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
.... }
我在 swift https://github.com/uacaps/PageMenu 中将这个开源框架用于我的视图控制器。
我将 xib 用于 table 视图单元格和 table 视图,如演示项目中所示。
但是,当我将我的按钮从 table 视图单元连接到 table 视图控制器时 Xcode 不允许我这样做。我正在处理 NotificationTableViewCell 和 NotificationTableVC 文件。
我已经正确设置了项目,可以启动单元和 运行 以及项目本身。但是,如果我无法获得连接按钮,我将无法添加所需的功能。
当我从存储库中克隆一些时,演示项目也有这种行为。我查看了这些问题,似乎没有人提到任何关于将 IBAction 连接到视图的事情,所以我做了,但我认为我遗漏了什么。
我已附上屏幕截图以帮助您查看我的问题。我还需要访问 cellForRowIndexPath。
我的 xib 被赋予 class 我的 table 视图单元格,它仍然不允许我与 table 视图控制器交互。
我认为您无法通过 IB 将 table 视图单元格元素连接到 table 视图控制器 class(据我所知,它不是这样做也是正确的,因为会有多个单元格和可重用性)。
将 IB 中的元素连接到您的 Cell class (.h/.m),如果没有,请创建一个,例如 NotificationTableViewCell.m,然后访问连接的元素来自 Table 视图控制器 class 中的委托方法。
希望对您有所帮助。
好的,所以我找到了可行的解决方案。感谢 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
.... }