2016-12-26 6 views
0

J'essaie d'exécuter une instruction multiple multiple if dans @IBAction func. Mais je voudrais terminer la première if-déclaration d'abord (je mets un bloc d'alerte pour mettre le processus en pause) puis exécuter la seconde if-instruction et ensuite exécuter le script de repos. Mon code est ressembler à ceci:Exécuter le script suivant avant de terminer l'instruction if

@IBAction func onDone(_ sender: Any) { 
    if var1.count > 0 { 
    let block: DTAlertViewButtonClickedBlock = {(alertView, buttonIndex, cancelButtonIndex) in 
    //Do somethings 
    } 
    DTAlertView(block: block, title: "Do somethings?", cancelButtonTitle: "Cancel", positiveButtonTitle: "Let's do it!").show() 
    } 
    if var2.count > 0 { 
    //Do another things 
    } 
    _ = navigationController?.popViewController(animated: true) 
} 

Mais Xcode semblent courir le 1er instruction if et 2e instruction if dans le popViewController dans le même temps ne me attend pas fini l'alerte Block.

Quelqu'un a-t-il le même problème? Que dois-je mettre dans le code ou est-ce que mon code a quelque chose d'incorrect?

Répondre

0

Vous devez déplacer le 2ème if à l'intérieur du gestionnaire de modification de bouton.

@IBAction func onDone(_ sender: Any) { 
    if var1.count > 0 { 
     let block: DTAlertViewButtonClickedBlock = {(alertView, buttonIndex, cancelButtonIndex) in 
      //Do something 
      if var2.count > 0 { 
       //Do another things 
      } 
      _ = navigationController?.popViewController(animated: true) 
     } 
     DTAlertView(block: block, title: "Do somethings?", cancelButtonTitle: "Cancel", positiveButtonTitle: "Let's do it!").show() 
    } 
} 
+0

var2.count est indépendant de var1.count. Alors, est-ce que je devrais mettre les deux à l'intérieur si var1.count et sinon var1.count? –

+0

Oui, vous devrez répéter le var2 si la vérification. – rmaddy