ViewController 不符合自定义 UIButton 类

Posted

技术标签:

【中文标题】ViewController 不符合自定义 UIButton 类【英文标题】:ViewController not conforming to a custom UIButton Class 【发布时间】:2015-01-13 15:37:35 【问题描述】:

我有一个自定义 UIButton 类,我试图将它导入到我的项目中的 ViewController 类中,但我收到错误消息:'ViewController' 不符合协议 'OverrideButtonDelegate'"

这是自定义 UIButton 类的代码:

import Foundation
import UIKit

protocol OverrideButtonDelegate: NSObjectProtocol 
func overrideButtonDidStartPress(overrideButton: OverrideButton)
func overrideButtonDidEndPress(overrideButton: OverrideButton)


class OverrideButton: UIButton 
var delegate: OverrideButtonDelegate?

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) 
    delegate?.overrideButtonDidStartPress(self)


override func touchesEnded(touches: NSSet, withEvent event: UIEvent) 
    delegate?.overrideButtonDidEndPress(self)


这是来自 ViewController 的代码,其中我收到错误消息“类型 'ViewController' 不符合协议 'OverrideButtonDelegate'”

class ViewController: UIViewController, OverrideButtonDelegate 

【问题讨论】:

【参考方案1】:

你在UIViewController的delegate中定义了这两个函数吗? 当类符合协议时,协议中的功能必须在类中实现

class ViewController: UIViewController, OverrideButtonDelegate 

    func overrideButtonDidStartPress(overrideButton: OverrideButton)
    
        //Code
    
    func overrideButtonDidEndPress(overrideButton: OverrideButton)
    
                    //Code
    

【讨论】:

非常感谢您的帮助。这正是我所缺少的。

以上是关于ViewController 不符合自定义 UIButton 类的主要内容,如果未能解决你的问题,请参考以下文章

angular ui bootstrap uib-tooltip 在自定义触发器上显示

iOS异常:NSUnknownKeyException:“在将xib作为所有者连接到ViewController之后,”此类不符合键值的键值“

有没有办法让自定义类在UIView上进行操作而不需要在初始化时传递ViewController(作为参考)?

UITabBarController 自定义按钮在移动到下一个 ViewController 时不隐藏

Angular Js ui.bootstrap 选项卡自定义

类型“ViewController”不符合协议