2017-06-22 99 views
1

我有一个弹出窗口视图(没有标签栏),它弹出到带有标签栏的视图控制器。在一个标签栏视图控制器我设置了一个按钮,按一下,使视图控制器弹出:在Swift中弹出视图

@IBAction func PopUpClicked(_ sender: UIButton) -> Void { 

     let popOverVC = UIStoryboard(name: "SpinningWheel", bundle: nil).instantiateViewController(withIdentifier: "PhotoPopUp") as! PopUpViewController 

     self.addChildViewController(popOverVC) 

     popOverVC.view.frame = self.view.frame 
     self.view.addSubview(popOverVC.view) 
     popOverVC.didMove(toParentViewController: self) 
    } 

而在酥料饼的视图控制器,我动画流行过。

override func viewDidLoad() { 
     super.viewDidLoad() 

     self.view.backgroundColor = UIColor.black.withAlphaComponent(0.8) 


     self.showAnimate() 

     // Do any additional setup after loading the view. 
    } 


     func showAnimate() 
     { 
      self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3) 
      self.view.alpha = 0.0; 
      UIView.animate(withDuration: 0.25, animations: { 
       self.view.alpha = 1.0 
       self.view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0) 

      }); 
     } 

     func removeAnimate() 
     { 
      UIView.animate(withDuration: 0.25, animations: { 
       self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3) 
       self.view.alpha = 0.0; 

      }, completion:{(finished : Bool) in 
       if (finished) 
       { 
        self.view.removeFromSuperview() 
       } 
      }); 
     } 

但是,当popover发生时,一切都有一个褪色的黑色背景,除了标签栏,我想要的。我希望弹出视图以弹出TabBar和褪色的黑色背景来越过它。

这就是我想要它看起来像: enter image description here

与黑色背景褪色覆盖的TabBar

回答

2

出现这种情况,因为你必须展示你的酥料饼作为一个模式视图控制器。为了达到这个目的,你必须在从你的目标ViewController展示你的弹出窗口之前设置模态表示样式。此代码应该叫您呈现的ViewController:

let vc = YourPopOverViewController(nib: UINib(name: "PopOverViewController", bundle: nil), bundle: nil) 
vc.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext 

tabBarController.present(vc, animated: true) 

编辑:

这应该做的伎俩,如果你HABE设计你的PopOverViewController为全屏视图控制器。我有这个做了一堆的时间和已经离开这不应该呈现为清晰的背景空间:

@IBAction func PopUpClicked(_ sender: UIButton) -> Void { 
let popOverVC = UIStoryboard(name: "SpinningWheel", bundle: nil).instantiateViewController(withIdentifier: "PhotoPopUp") as! PopUpViewController 
popOverVc.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext 

tabBarController.present(popOverVC, animated: true) 

}

+0

'@IBAction FUNC PopUpClicked(_发件人:UIButton的) - >虚空{ 让popOverVC = UIStoryboard(名称:“SpinningWheel”,bundle:nil).instantiateViewController(withIdentifier:“PhotoPopUp”)as! PopUpViewController self.addChildViewController(popOverVC) popOverVC.view.frame = self.view.frame self.view.addSubview(popOverVC.view) popOverVC.didMove(toParentViewController:自) popOverVC.modalPresentationStyle = UIModalPresentationStyle.overFullScreen }'我试过这个,它不起作用 – juelizabeth

+0

你需要作为UIModalPresentationStyle OverCurrentContext – weissja19

+0

而你需要将它展示在UITabBarController上。我还没有看到你正在使用一个 – weissja19