我有一个从故事板链接到的IBOutlet
@IBOutlet var creeLigueBouton: UIBarButtonItem!
如果条件成立,我想使其消失
if(condition == true) { // Make it disappear }
您真的要隐藏/显示creeLigueBouton吗?相反,启用/禁用UIBarButtonItems要容易得多。您可以使用以下几行代码完成此操作:
creeLigueBouton
if(condition == true) { creeLigueBouton.enabled = false } else { creeLigueBouton.enabled = true }
该代码甚至可以用更短的方式重写:
creeLigueBouton.enabled = !creeLigueBouton.enabled
让我们在UIViewController子类中查看它:
import UIKit class ViewController: UIViewController { @IBOutlet weak var creeLigueBouton: UIBarButtonItem! @IBAction func hide(sender: AnyObject) { creeLigueBouton.enabled = !creeLigueBouton.enabled } }
如果您确实想显示/隐藏creeLigueBouton,则可以使用以下代码:
import UIKit class ViewController: UIViewController { var condition: Bool = true var creeLigueBouton: UIBarButtonItem! //Don't create an IBOutlet @IBAction func hide(sender: AnyObject) { if(condition == true) { navigationItem.rightBarButtonItems = [] condition = false } else { navigationItem.rightBarButtonItems = [creeLigueBouton] condition = true } } override func viewDidLoad() { super.viewDidLoad() creeLigueBouton = UIBarButtonItem(title: "Creer", style: UIBarButtonItemStyle.Plain, target: self, action: "creerButtonMethod") navigationItem.rightBarButtonItems = [creeLigueBouton] } func creerButtonMethod() { print("Bonjour") } }