1

で呼び出す関数がviewDidLoadありますMainViewcontroller

func showPopUp() {    

    self.popViewController = PopUpViewController(nibName: "PopUpViewController", bundle: nil)
    //self.popViewController.title = "This is a popup view"        

    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    blurEffectView.frame = view.bounds
    view.addSubview(blurEffectView)       

    self.popViewController.showInView(self.view, withImage: UIImage(named: "typpzDemo"), withMessage: "You just triggered a great popup window", animated: true)  
}

これにより、私が表示され、PopupViewControllerがぼやけますMainViewController。私のPopupViewController中には、IBActionこのView Controllerを閉じる必要があります

@IBAction func closePopup(sender: AnyObject) {
    self.removeAnimate()
   // Need to Close down the blur effect here!
    }
}

ポップアップを閉じると、メインのビュー コントローラーがまだぼやけています。の内部からこのぼかしビューを削除するにはどうすればよいclosePopup IBActionですか?

4

2 に答える 2

1

blurEffectView使い終わったら外す必要があります。メソッドメソッド内でclosePopUpこれを試してください:

blurEffectView.removeFromSuperview()

もちろん、前にこの変数への参照を保存します。たとえば、次のようにします。

class PopUpViewController {

   var blurEffectView : UIVisualEffectView!

    @IBAction func closePopup(sender: AnyObject) {
       self.removeAnimate()
       blurEffectView.removeFromSuperview()
    }
}

その前に、これを行う必要があります:

func showPopUp() {    

    self.popViewController = PopUpViewController(nibName: "PopUpViewController", bundle: nil)
    //self.popViewController.title = "This is a popup view"        

    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    blurEffectView.frame = view.bounds
    view.addSubview(blurEffectView)       

    // In this line you pass the reference to the Blur
    self.popViewController.blurEffectView = blurEffectView


    self.popViewController.showInView(self.view, withImage: UIImage(named: "typpzDemo"), withMessage: "You just triggered a great popup window", animated: true)  
}
于 2015-03-10T14:28:24.313 に答える