2017-09-09 1 views
1

J'ai donc une vue qui a un navBar avec deux boutons. Je me demandais si c'était possible si d'une autre classe je pouvais choisir si je voulais montrer ces boutons? Ce que je veux dire par là, quand vous êtes dans le RecentsVC et vous cliquez pour envoyer un nouveau message, je l'ai pour vous amener à une vue appelée Contacts. Et cette vue a deux boutons, dont je voudrais cacher l'un. Donc, dans l'IBAction pour cliquer pour envoyer un nouveau message, je voudrais définir la propriété pour rendre l'un des boutons cachés.Comment cacher un bouton d'une autre classe

+0

pourquoi ne pas avoir juste le bouton caché dans la viewDidLoad de la vue Contacts. – Martheli

+1

... parce que lorsque vous cliquez sur la barre d'onglets pour aller à vos contacts, ce bouton doit être là. Je ne veux tout simplement pas que le bouton soit là quand vous cliquez pour y arriver en cliquant sur le bouton du nouveau message. – Jaqueline

Répondre

0

Avoir une variable booléenne dans Contacts et définir la valeur de cette variable dans la méthode prepare(for segue:) de la classe RecentsVC. Utilisez ensuite la valeur de ce booléen pour tester si Contacts doit masquer l'élément du bouton de la barre de navigation.

class RecentsVC: UIViewController {   

    override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) { 
     if(segue.identifier == "sendMessage") { // If there's only one segue from this view controller, you can remove this line 
      let vc = segue.destination as! Contacts 
      vc.buttonIsHidden = true 
     } // If you removed the if, don't forget to remove this, too 
    } 
} 

class Contacts: UIViewController { 

    var buttonIsHidden: Bool? 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if buttonIsHidden == true { 
      self.navigationItem.leftBarButtonItem = nil 
     } 
    } 
} 
+0

Où puis-je trouver le nom de l'identifiant du segue? – Jaqueline

+0

@Jaqueline Avez-vous créé un segment depuis RecentsVC vers des contacts dans Interface Builder ou instantiez-vous un programme Contacts de façon tactique? – Shades

+0

Je l'ai aller à un contrôleur de navigation qui est défini comme le contrôleur de vue racine au ContactsVC – Jaqueline