【问题标题】:Remove SubView Faster更快地删除子视图
【发布时间】:2016-01-19 19:10:35
【问题描述】:

在我的主要 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)
    }

但是当我更改控制器时,UILabel 是固定的。它并没有消失,所以我添加了该代码:

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

它有效,但我希望它在按下后退按钮后立即消失。不像这张图: (“示例”文本稍后会消失)

【问题讨论】:

  • 尝试在viewWillDisappear中设置该代码,看看是否有任何不同。
  • @RashwanL 这正是我要说的:)
  • 完美! Put 是有答案的 ;)

标签: ios swift uinavigationbar


【解决方案1】:

只需将其添加到 viewWillDisappear 中即可:

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

对于动画参数:

如果为真,则视图的消失正在被动画化。

【讨论】:

  • 在viewWillDisappear中参数动画不存在
  • @Sarita 检查referencefunc viewWillDisappear(_ animated: Bool).
【解决方案2】:

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

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

【讨论】:

  • 不写 super.viewWillDisappear(animated) 有什么区别?
猜你喜欢
  • 2010-11-11
  • 2012-02-05
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 2012-04-06
  • 2023-03-21
  • 1970-01-01
相关资源
最近更新 更多