2016-02-24 2 views
0

J'essaie de désactiver un bouton de menu est le tableau est spectacles est vide.Comment désactiver un UIButton et envoyer un message UIAlertView

Ceci est mon code.

@IBAction func likedmenubuttontouched(sender: AnyObject) { 

    if Globals.likedArray.isEmpty { 
     likedMenuButton.userInteractionEnabled = false 
     let ac = UIAlertController(title: "No liked quotes yet", message: "No liked quotes have been chosen, go explore!", preferredStyle: .Alert) 
     ac.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) 
     presentViewController(ac, animated: true, completion: nil) 
     return 
    } else { 
     likedMenuButton.userInteractionEnabled = true 
    } 
} 

Et dans viewDidLoad()

likedMenuButton.userInteractionEnabled = false 

J'ai réussi à désactiver le bouton, mais je veux envoyer un message d'alerte à l'utilisateur pourquoi le bouton est désactivé, sinon, est un peu déroutant.

Comment ferais-je cela?

Merci.

+0

Je pense que la condition est contraire –

+0

oups, j'ai oublié de mentionner que je mets ce code likedMenuButton.userInteractionEnabled = false est viewdidload() – Khoury

+0

pourquoi vous faites aiméMenuButton.userInteractionEnabled = false –

Répondre

0

Comme par défaut, le l'interaction utilisateur est vrai que vous avez besoin de ne pas faire vrai

@IBAction func likedmenubuttontouched(sender: AnyObject) { 


     if Globals.likedArray.isEmpty { 

      let ac = UIAlertController(title: "No liked quotes yet", message: "No liked quotes have been chosen, go explore!", preferredStyle: .Alert) 
      ac.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) 
      presentViewController(ac, animated: true, completion: nil) 
     } else { 
      //segue to the other view 
     } 
    } 

Also check your array count, that is why your wrong condition is executing

+0

Semble fonctionner mais je reçois "Erreur fatale: Array index out of range" quand il n'y a pas de guillemets? – Khoury

+0

Il s'affiche parce que vous accédez à l'objet à l'index qui n'est pas présent dans le tableau. Vérifiez le code si vous accesing objet dans le tableau. –

+0

Je crois que c'est à cause de cette ligne dans viewdidload() d'un autre contrôleur de vue - self.favouritesLabel.text = Globals.likedArray [currentlikedArrayIndex] en tant que chaîne - – Khoury