从用作 tableHeaderView 的 xib 文件中的按钮转到 VC
Posted
技术标签:
【中文标题】从用作 tableHeaderView 的 xib 文件中的按钮转到 VC【英文标题】:go to VC from button inside xib file that is used as a tableHeaderView 【发布时间】:2016-07-11 13:24:07 【问题描述】:我有一个 TableSectionHeader
xib
文件,里面有一个 button
(以及其他一些东西)。这个 xib 文件在我的PostViewController
中用作UItableview
的custom header
。
我希望能够单击该按钮以显示有关单元格的详细信息。但是,由于按钮位于 xib 文件内,IBAction
位于 TableSectionHeader.Swift
内(继承自 UITableViewHeaderFooterView)。这意味着我不能segue or instantiate
一个VC。
如何从xib
文件中的这个按钮转到另一个 VC?
【问题讨论】:
【参考方案1】:您需要将按钮的出口放入您的 xib 类而不是操作,并且当您在视图控制器中创建并返回标题时,您将在返回标题之前获得按钮的引用,然后 @987654321 @ 到您的按钮,并使用选择器标记将处理转到下一个视图控制器的方法。
在您的 xib 类中拖动并连接按钮:
class YearSectionHeader : UITableViewHeaderFooterView
@IBOutlet car button :UIButton!
在您的视图控制器表视图标题方法(示例)中,不要忘记将类和标识符更改为您使用的正确方法:
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
let header : YearSectionHeader = tableView.dequeueReusableHeaderFooterViewWithIdentifier("TableHeader") as! YearSectionHeader
header.button.addTarget(self, action: #selector(self.handlingMethodName(_:)), forControlEvents: UIControlEvents.TouchUpInside)
header.button.tag = section
return header
sender.tag
是你的节号,你可以在这里进行转场:
func handlingMethodName(sender:UIButton)
print(sender.tag)
【讨论】:
以上是关于从用作 tableHeaderView 的 xib 文件中的按钮转到 VC的主要内容,如果未能解决你的问题,请参考以下文章
在xib里,拖一个UIView到UITableView中作为tableHeaderView:
iOS UITableView tableHeaderView 高度变了
tableView.tableHeaderView赋值后立即刷新
tableView.tableHeaderView 已设置但未绘制
UITableView tableHeaderView中的UIButton没有响应触摸
如何在UICollectionView中添加HeaderView,如UITableView的tableHeaderView