ios - 需要在所有 VC 中添加通用的 UIBarButtonItem

标签 ios swift swift2

以下是一段无效的代码:

class Person {

        static fun addBtn(cName:UIViewController)
        {
           let rightBtn = UIBarButtonItem.init(title: "Right", style: .Plain, target: UIBarButtonItem.self, action:#selector(UIBarButtonItem.self.newMenuTapped(_:)))
           cName.navigationItem.rightBarButtonItem  = rightBtn
        }

    }
    extension UIBarButtonItem
    {

        func newMenuTapped(sender: UIBarButtonItem)
        {
        print("Tapped")
        }

    }

崩溃并出现此错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: unrecognized selector sent to class 0x14c830

有人可以指导我做错了什么吗?谢谢。

最佳答案

像这样为 UIViewController 创建一个扩展:

extension UIViewController {
    func addButton() {
        let button = UIBarButtonItem(title: "Right", style: .Plain, target: self, action: #selector(self.rightButtonPressed(_:)))
        self.navigationItem.setRightBarButtonItem(button, animated: false)
    }

    func rightButtonPressed(sender: UIBarButtonItem) {
        print("tapped")
    }
}

然后在所有要实现按钮的 View Controller 中调用 self.addButton()

关于ios - 需要在所有 VC 中添加通用的 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38394918/

相关文章:

swift - 从 Swift 2 迁移到 Swift 3 : Initializer has different argument names from those required by protocol 期间的奇怪问题

ios - 为什么堆栈 View 的框架是(0.0,0.0)?

iphone - 应用程序因 SKPSMTPMessage 类而崩溃

ios - 存储空间已满时将应用程序数据保存到用户的 iCloud(CloudKit)?

swift - 更改 SCNText 中某些单词的颜色

swift - 从条件解析中获取数据

arrays - 如何将数组中的每个字母与另一个数组中的所有字母进行比较? - swift

ios - UITextView 的背景图片

ios - 错误 : Unexpected end of multipart data] storageErrors: [] in express. js-iOS (Objective-C) 应用程序

ios - 传递嵌套到另一个类中的完成处理程序