swift UIActivityIndicatorView .hidden = false ne fonctionne pas

Je suis en train de montrer un Indicateur d'Activité de la Vue une fois qu'un bouton est pressé, mais il ne veut pas montrer. Si je ne cherche pas à cacher à tout, il montre, et quand j'essaie de le cacher, il se cache. Mais s'il est caché, il ne sera pas montrer de nouveau.

Voici le code:

override func viewDidLoad() {
    super.viewDidLoad()

    //Do any additional setup after loading the view.
    loading.hidden = true
}

@IBAction func submit() {
    loading.hidden = false
    loading.startAnimating()
    if chosenCategory == "" || txtName.text == "" || txtEmail.text == ""    {
        loading.stopAnimating()
        loading.hidden = true
    } else {
        println("animation")

Peu importe ce que, l'arrêt de l'animation, et il peut se cacher, mais peu importe ce que je fais, il semble juste de sauter le loading.hidden = false et va directement à l'impression du message.

Ce qui pourrait se passer?

Il n'y a pas d'attente ici - chaque ligne est dans la même fonction, sauf si vous êtes en utilisant quelque chose comme un sleep() ou une sorte d'appel asynchrone, sera exécutée immédiatement l'un après l'autre. Ce n'est pas comme le chargement.startAnimating() sera appelée, les choses vont aller en attente, et puis un moment plus tard, le reste se fera. Ils arrivent presque instantanément l'un après l'autre. Nous montrer plus de code pour le contexte.
Non, il n'est en attente, le ... est où d'autres code va. Il appelle à un serveur, et il y a une période d'attente (la demande). Et puis j'ai même essayé de différentes méthodes
Nous montrer le reste du code ne peut pas vous aider autrement.
Il y a beaucoup de code, plus de 200 lignes. Mais je vais essayer de poster ce qui est pertinent...
Lorsque soumettre est touché, si la si la déclaration est vraie, vous serez immédiatement cacher chargement. Et les gens ne veulent aider, mais vous devez fournir suffisamment d'informations.

OriginalL'auteur | 2014-09-09