2017-09-09 62 views
1

所以我有一个有两个按钮的navBar的视图。我想知道如果从另一个班级我可以选择是否有可能,我希望这些按钮显示? 我的意思是,当您处于RecentsVC中并且您单击发送新消息时,我将它带到名为Contacts的视图。那个视图有两个按钮,其中一个我想隐藏。因此,在点击发送新消息的IBAction中,我想设置属性使其中一个按钮隐藏。如何隐藏另一个类的按钮

+0

为什么不只是隐藏在viewDidLoad中的联系人视图按钮。 – Martheli

+1

...因为当你点击标签栏去你的联系人那个按钮需要在那里。我不想在那里点击按钮,点击新消息按钮 – Jaqueline

回答

0

Contacts中有一个布尔变量,并在RecentsVC类的prepare(for segue:)方法中设置该变量的值。然后使用该布尔值来测试Contacts是否应该隐藏导航栏按钮项目。

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

在哪里可以找到segue标识符的名称? – Jaqueline

+0

@Jaqueline您是否在Interface Builder中创建了从RecentsVC到联系人的Segue,或者您是否通过程序实例化了联系人? – Shades

+0

我将它转到一个导航控制器,该控制器被设置为ContactsVC – Jaqueline

相关问题