2017-10-18 146 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