更快地删除子视图

Remove SubView Faster

在我的主要 UIViewController 嵌入 UINavigationController 中,我使用该代码将 UILabel 添加到导航栏:

    if let navigationBar = self.navigationController?.navigationBar {

        let frameDomanda = CGRect(x: navigationBar.frame.width/2 - domandaN.frame.width/2, y: -10, width: domandaN.frame.width, height: navigationBar.frame.height)

        domandaN.frame = frameDomanda
        let secondLabel = UILabel(frame: secondFrame)
        secondLabel.text = "Second"

        navigationBar.addSubview(domandaN)
    }

但是当我更改 Controller 时,UILabel 已修复。它不会消失,所以我添加了代码:

override func viewDidDisappear(animated: Bool) {
    domandaN.removeFromSuperview()
}

它可以工作,但我希望它在按下后退按钮后立即消失。不像这张图: ("example" 文本稍后消失)

你可以使用viewWillDisappear,别忘了调用super:

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    // you code here
}

只需将它添加到 viewWillDisappear 而不是这个:

override func viewWillDisappear(animated: Bool) {
    domandaN.removeFromSuperview()
}

对于动画参数:

If true, the disappearance of the view is being animated.