UIBarButtonItem - '#selector' 的参数不能引用本地函数 - Swift 3 [英] UIBarButtonItem - Argument of '#selector' cannot refer to local function - Swift 3

查看:29
本文介绍了UIBarButtonItem - '#selector' 的参数不能引用本地函数 - Swift 3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在创建一个会调用 handleSearch 函数的导航按钮时遇到问题.我收到一条消息'#selector' 的参数不能引用本地函数.任何帮助,将不胜感激!

I am having a problem with creating a nav button that would call handleSearch function. I receive a message Argument of '#selector' cannot refer to local function. Any help would be appreciated!

override func viewDidLoad() {
   // various code

   func setupNavBarButtons() {
       let searchImage = UIImage(named:"search_icon")
       let searchBarButtonItem = UIBarButtonItem(image: searchImage, style: .plain, target: self, action: #selector(handleSearch(sender:)))
        navigationItem.rightBarButtonItems = [searchBarButtonItem]

    }

    func handleSearch(sender: UIBarButtonItem) {
        print(123)
    }
}

推荐答案

#selector 只能引用顶级函数,不能引用局部函数(在另一个函数内部).

#selector can only reference a top-level function, not a local function (one inside another function).

只需将 handleSearch 移出 viewDidLoad 即可解决您的问题.

Simply move handleSearch out of viewDidLoad and your problem will be solved.

这篇关于UIBarButtonItem - '#selector' 的参数不能引用本地函数 - Swift 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆