2015-06-11 2 views
2

, поэтому, как работает мое приложение, вы нажимаете на ячейку, значение var изменяется (например, +1). Я выяснил, как получить UIalert, чтобы pop, когда мой var достигает определенного значения (10). Но теперь каждый раз, когда я обновляю var, появляется предупреждение. Что я хотел бы, чтобы это сделать, это поп, когда вар хиты 10 и останавливается после тогоUialertController, чтобы показывать только один раз, когда var достигает определенного значения

Heres код:

if (section1score >= 10){ 
     let alertController: UIAlertController = UIAlertController(title: NSLocalizedString("Section 1 score is over 10", comment: ""), 
      message: " \(message1)", 
      preferredStyle: .Alert) 

     let OKAction = UIAlertAction(title: "OK", style: .Default) { 
      action -> Void in } 

     alertController.addAction(OKAction) 
     self.presentViewController(alertController, animated: true, completion: nil) 

    } 

if (section2score >= 10){ 
     let alertController: UIAlertController = UIAlertController(title: NSLocalizedString("Section 2 Score is over 10", comment: ""), 
      message: "\(message2)", 
      preferredStyle: .Alert) 

     let OKAction = UIAlertAction(title: "OK", style: .Default) { 
      action -> Void in } 

     alertController.addAction(OKAction) 
     self.presentViewController(alertController, animated: true, completion: nil) 

    } 
+0

модифицирована как 'если section1score == 10 {' ​​ –

ответ

1

настроить Bool, чтобы проверить, если предупреждение было показано или нет. Создайте Bool по всему миру и установите его на false.

var showedAlert = false 

func yourFunction() { 
    if section1score >= 10 && showedAlert == false { 
     // show alert 
     showedAlert = true 
    } 

    if section2score >= 10 && showedAlert == false { 
     // show alert 
     showedAlert = true 
    } 
} 

Comparison Operators

+0

вещь это приложение не будет, вероятно, никогда не goind ударить 10 раз, в основном буду прыгать от 8 до 12 – Jp4Real

+0

@ Jp4Real Я обновил свой ответ. Создайте 'Bool' глобально и сначала установите значение false. –

+1

спасибо, что это работает! – Jp4Real

1

Вы можете использовать свойство, чтобы отслеживать, когда вы показываете предупреждение, так что, как только вы показать его, вы не будете показывать его снова.

var hasShownAlert: Bool = false 

if (section1score >= 10 && !hasShownAlert){ 
    let alertController: UIAlertController = UIAlertController(title: NSLocalizedString("Section 1 score is over 10", comment: ""), 
     message: " \(message1)", 
     preferredStyle: .Alert) 

    let OKAction = UIAlertAction(title: "OK", style: .Default) { 
     action -> Void in } 

    alertController.addAction(OKAction) 
    self.presentViewController(alertController, animated: true, completion: nil) 
    hasShownAlert = true 
} 

if (section2score >= 10 && !hasShownAlert){ 
    let alertController: UIAlertController = UIAlertController(title: NSLocalizedString("Section 2 Score is over 10", comment: ""), 
     message: "\(message2)", 
     preferredStyle: .Alert) 

    let OKAction = UIAlertAction(title: "OK", style: .Default) { 
     action -> Void in } 

    alertController.addAction(OKAction) 
    self.presentViewController(alertController, animated: true, completion: nil) 
    hasShownAlert = true 
} 
+0

теперь, когда я устанавливаю bool: false, он все равно всплывает все время, но когда я устанавливаю true, он вообще не всплывает ... возможно, я не объявляю свой var в нужном месте? – Jp4Real

+0

Вы только один '&' вместо двух '&&'? – keithbhunter

+1

@keithbhunter звучит как hes, поместив 'var hasShownAlert: Bool = false' внутри своей функции. Это необходимо создать глобально и сначала установить на «false». –