UIBarButtonItem - '#selector' 的参数不能引用本地函数 - Swift 3 [英] UIBarButtonItem - Argument of '#selector' cannot refer to local function - Swift 3
本文介绍了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屋!
查看全文