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:使用 xib 的自定义视图

显示来自 Xib 的自定义视图

IOS/Objective-C:检测自定义表格视图单元格中的按钮按下?

如何执行从自定义 UITableViewCell(xib) 到另一个 ViewController 的 segue 视图

iOS 使用自定义 Xib 和视图覆盖 initWithFrame 的正确方法?