2017-02-07 2 views
0

Это blureffect и предупреждение, которое отображается, если пользователь хочет вернуться. я не мог найти что-то, что я понял, поэтому я надеюсь, что кто-то здесь может мне помочь. Благодарим вас за помощь!Как отключить blureffect после того, как пользователь нажал альтернативу в режиме alertview?

Это весь код, пожалуйста, но новый код в

 // 
// Visartotal.swift 
// Segment controll 
// 
// Created by Simon Harrysson on 2017-01-28. 
// Copyright © 2017 Simon Harrysson. All rights reserved. 
// 

import UIKit 

var Allabetygtillsamans: Double = 0 


class Visartotal: UIViewController 
{ 

    @IBOutlet weak var Tillbaka: UIButton! 
    @IBOutlet weak var Börjaomknapp: UIButton! 
    @IBOutlet weak var Visartotalreligion: UILabel! 
    @IBOutlet weak var VisartotalIMusik: UILabel! 
    @IBOutlet weak var Visartotaltmerit: UILabel! 
    @IBOutlet weak var VisartotalBild: UILabel! 
    @IBOutlet weak var Visartotalmatematik:UILabel! 
    @IBOutlet weak var VisartotalEngelska: UILabel! 

    var blurEffectView: UIVisualEffectView? 

    override func viewDidAppear(_ animated: Bool) 
    { 
     self.blurEffect = UIBlurEffect(style: .dark) 
     self.blurEffectView = UIVisualEffectView(effect: self.blurEffect) 
     blurEffectView?.frame = view.bounds 
     blurEffectView?.autoresizingMask = [.flexibleWidth, .flexibleHeight] // for supporting device rotation 


    } 
    var blurEffect: UIBlurEffect? 

     @IBAction func TillbakaAction(_ sender: UIButton) 
    { 
     createAlert(title: "Är du säker på att du vill börja om?", message: "Ifyllda betyg nollställs") 
    blurEffectView = UIVisualEffectView(effect: blurEffect) 

       view.addSubview(blurEffectView!) 
     } 

    func createAlert (title:String, message:String) 
    { 
     let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert) 

     //CREATING ON BUTTON 
     alert.addAction(UIAlertAction(title: "Ja", style: UIAlertActionStyle.default, handler: { 
      (action) in 
      alert.dismiss(animated: true, completion: nil) 
      print ("Jag vill gå tillbaka") 
      self.performSegue(withIdentifier: "Tillbaka", sender: nil) 
      self.blurEffectView?.removeFromSuperview() 

        })) 

     alert.addAction(UIAlertAction(title: "Nej", style: UIAlertActionStyle.default, handler: { (action) in 
      alert.dismiss(animated: true, completion: nil) 
      print("Nej, jag vill inte gå tillbaka") 
      self.blurEffectView?.removeFromSuperview() 

     })) 

     self.present(alert, animated: true, completion: nil) 



    } 

    override func viewDidLoad() 
    { 


     let Allabetygtillsamans = MusikbetygIDouble + BildbetygValtDouble + MatematikbetygvaltIDouble + ReligionbetygvaltDouble + EngelskabetygvaltDouble 

     Visartotaltmerit.font = UIFont(name: "Arial", size: 21) 


     let totalameritet = String(Allabetygtillsamans) 


     VisartotalIMusik.text = MusikbetygValt 
     VisartotalBild.text = BildbetygValt 
     Visartotalmatematik.text = Matematikbetygvalt 
     Visartotalreligion.text = Religionbetygvalt 
     VisartotalEngelska.text = Engelskabetygvalt 

     Visartotaltmerit.text = totalameritet + ("p") 


     if BildbetygValt == "F" 
     { 
      VisartotalBild.textColor = UIColor.red 
     } 
     if MusikbetygValt == "F" 
     { 
      VisartotalIMusik.textColor = UIColor.red 
     } 
     if Matematikbetygvalt == "F" 
     { 
      Visartotalmatematik.textColor = UIColor.red 
     } 
     if Religionbetygvalt == "F" 
     { 
      Visartotalreligion.textColor = UIColor.red 
     } 
     if Engelskabetygvalt == "F" 
     { 
      VisartotalEngelska.textColor = UIColor.red 
     } 



     switch Allabetygtillsamans { 
     case 290...340: 
      Visartotaltmerit.textColor = UIColor.green 
      Visartotaltmerit.backgroundColor = UIColor.clear 
      Visartotaltmerit.backgroundColor = UIColor.clear 
     case 230...290: 
      Visartotaltmerit.textColor = UIColor.yellow 
      Visartotaltmerit.backgroundColor = UIColor.clear 
      Visartotaltmerit.backgroundColor = UIColor.clear 
     case 220...230: 
      Visartotaltmerit.textColor = UIColor.orange 
      Visartotaltmerit.backgroundColor = UIColor.clear 
     case 0...220: 
      Visartotaltmerit.textColor = UIColor.red 
      Visartotaltmerit.backgroundColor = UIColor.clear 
     default: 
      print("defult") 
     } 



    func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 





} 
} 
+0

FYI - не называют 'alert.dismiss (...' в боевой готовности действия: предупреждение будет отклонено для вас. – rmaddy

ответ

0

Вам нужно будет создать blurEffectView переменные, вы можете получить доступ из вне сферы вашего tillbakaAction функции. - где-то в ViewController. Затем, в своем UIAlertActions вы можете сказать self.blurEffectView.removeFromSuperview(), чтобы удалить его. Не будет анимации - она ​​просто исчезнет.

Кроме того, как отметил еще один комментарий, вам не нужно указывать alert.dismiss..., поскольку это происходит автоматически.

В качестве примера для переменной, это будет работать:

var blurEffectView: UIVisualEffectView? 

@IBAction func tillbakaAction(_ sender: UIButton) { 
    ... 
    self.blurEffectView = UIVisualEffectView(effect: blurEffect) 
    ... 
} 

И в своем действии:

alert.addAction(UIAlertAction(title: "Ja", style: UIAlertActionStyle.default, handler: { 
    (action) in 
    self.blurEffectView?.removeFromSuperview() 
    ... 
+0

Я не могу найти место для создания этой переменной. Где я должен ее создать, поэтому она будет приемлемой для tillbakaAction – theswed

+0

@theswed, которую вы можете поместить в качестве глобальной переменной в свой viewController Я отредактирую, чтобы помочь. – creeperspeak

+0

Будете ли вы hel p меня с моим кодом, как вы были готовы помочь. Заранее спасибо – theswed

Смежные вопросы