iOS 自定义 .xib 视图按钮点击检测在视图控制器 (Swift)
Posted
技术标签:
【中文标题】iOS 自定义 .xib 视图按钮点击检测在视图控制器 (Swift)【英文标题】:iOS Custom .xib view button tap detect in view controller (Swift) 【发布时间】:2015-08-22 05:51:37 【问题描述】:所以我正在使用包含几个对象的自定义视图 (.xib):UIImage
视图和UIButton
。视图控制器 UIView
中包含和使用的自定义视图,但是我似乎无法弄清楚如何检测按钮(来自 .xib)是否被点击并在视图控制器中启动功能。有什么建议么?
我可以将UITap
手势添加到整个Viewcontroller
UIView,但这不是我需要的。
【问题讨论】:
【参考方案1】:@IBAction func calculateTapped(sender : AnyObject)
//You can get action here
【讨论】:
对不起,我不明白你的回答 您是否设置了 UIControlEventTouchUpInside.. 控件中的一个触摸事件,其中手指位于控件边界内。 我在视图控制器中添加了以下代码: var View = NSBundle.mainBundle().loadNibNamed("CustomView", owner: self, options: nil)[0] as? CustomView View?.thisImageButton.addTarget(self, action: "buttonTapped", forControlEvents: .TouchUpInside) 尝试使用上述方法【参考方案2】:第 1 步 将您的所有按钮链接到 xib 可可类
class DialogHandler: UIView
@IBOutlet weak var acceptBtn: UIButton!
@IBOutlet weak var closeBtn: UIButton!
第二步
Add Below code in viewDidLoad()
if let customView = Bundle.main.loadNibNamed("DialogDemo", owner: self, options: nil)?.first as? DialogHandler
dialogView = customView
customView.acceptBtn.addTarget(self, action: #selector(ViewController.acceptBtnPressed(sender:)), for: .touchUpInside)
第三步
为可以处理您的点击事件的按钮创建函数
@objc func acceptBtnPressed (sender:UIButton) print("Button Pressed")
【讨论】:
以上是关于iOS 自定义 .xib 视图按钮点击检测在视图控制器 (Swift)的主要内容,如果未能解决你的问题,请参考以下文章
自定义 UIView XIB 内的 iOS 导航返回按钮(无导航控制器)
IOS/Objective-C:检测自定义表格视图单元格中的按钮按下?
如何执行从自定义 UITableViewCell(xib) 到另一个 ViewController 的 segue 视图