2017-10-18 147 views
3

我想隐藏并显示我的UIBarButtonItem,但自从Swift 4和iOS 11以来,它不再工作。为什么?使用Swift 4隐藏和显示UIBarButtonItem

代码隐藏:

self.navigationItem.rightBarButtonItem = nil 

代码显示:

self.navigationItem.rightBarButtonItem = self.barButtonItem 

前:

UIBarButtonItem is display

在:

When I tap on my SearchBar

后:

When I click on Cancel, UIBarButtonItem not appear

+0

如果你是隐藏'rightBarButtonItem'? –

+0

当UISearchBar开始编辑时。 – MichelRobico

回答

0

你可以试试这个,如果你使用标准元素。您也可以先创建您的UIBarButtonItem,并再次将下面的代码内分配它:

self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true) 

参考:https://developer.apple.com/documentation/uikit/uinavigationitem/1624929-setrightbarbutton

+0

与我的代码有什么不同? – MichelRobico

+0

您没有使用navigationItem的给定功能setRightBarButtonItem(...)。我假设直接分配barButtonItem(你的代码)在swift3中工作,但不在swift4中 – AlexWoe89