我有一个带按钮的视图控制器。当点击该按钮时,第二个vc将添加到第一个视图控制器上。当我点击第二个vc上的一个按钮时,它会从superview中移除....但是这不会触发我调用方法的viewwillappear。因此,有些事情不像重新加载tableview那样......
有人可以解释一下如何让它发挥作用吗? 感谢
更新1个已添加的代码
我如何添加第二个VC
let blurEffectView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Dark))
if !UIAccessibilityIsReduceTransparencyEnabled()
{
self.view.backgroundColor = UIColor.clearColor()
blurEffectView.frame = self.view.bounds
blurEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
blurEffectView.alpha = 0
}
newView.view.alpha = 0.0
self.view.addSubview(blurEffectView)
self.view.addSubview(newView.view)
UIView.animateWithDuration(0.8){
self.newView.view.alpha = 1
self.blurEffectView.alpha = 1
}
我如何删除第二个VC
ViewController().blurEffectView.removeFromSuperview()
答案 0 :(得分:2)
您的代码的问题在于您没有推送新的UIViewController,只需在其上添加UIView即可。 ViewWillAppear只会在UIViewController不是堆栈顶部并且顶部的那个被删除时触发(使用dismiss)。
self.view.addSubview(blurEffectView)
self.view.addSubview(newView.view)
这些行只是将UIViews作为子视图添加到当前的UIViewController.view中,因此活动的UIViewController仍然是您所在的那个,这意味着删除子视图不会调用任何回调方法UIViewController中。我相信在你做ViewController().blurEffectView.removeFromSuperview()
我可能会误解,因为这只是一段代码而且我甚至不知道它的功能是什么。如果你需要进一步的帮助,如果你可以上传一个示例项目会更容易。 / p>