2017-10-18 3 views
3

Je veux cacher et montrer mon UIBarButtonItem mais depuis Swift 4 et iOS 11, ça ne marche plus. Pourquoi ?Masquer et afficher UIBarButtonItem avec Swift 4

code pour cacher:

self.navigationItem.rightBarButtonItem = nil 

code pour le spectacle:

self.navigationItem.rightBarButtonItem = self.barButtonItem 

Avant:

UIBarButtonItem is display

Au cours:

When I tap on my SearchBar

Après:

When I click on Cancel, UIBarButtonItem not appear

+0

Où vous cachez 'rightBarButtonItem'? –

+0

Lorsque UISearchBar commence à modifier. – MichelRobico

Répondre

0

Vous pouvez essayer, si vous utilisez des éléments standard. Vous pouvez également créer votre premier UIBarButtonItem et allouer dans le code suivant à nouveau:

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

Pour référence: https://developer.apple.com/documentation/uikit/uinavigationitem/1624929-setrightbarbutton

+0

Quelle est la différence avec mon code? – MichelRobico

+0

vous n'utilisez pas la fonctionnalité donnée setRightBarButtonItem (...) de votre objet navigationItem. Je suppose que l'allocation du barButtonItem directement (votre code) fonctionnait dans swift3 mais pas dans swift4 – AlexWoe89