为什么我的UIButton在发生问题后仍然保留?

时间:2018-07-29 10:36:31

标签: swift uibutton

我一直在以编程方式尝试和实践构建应用程序,只是不明白为什么在进行模态搜索后,来自根VC的UIButton仍保留在下一个视图中。当我通过情节提要进行操作时,视图中的所有元素都会消失。

我的rootVC由一层和一个UIButton组成:

enter image description here

按下按钮会模态显示下一个视图控制器,但UIButton仍然存在:

enter image description here

第二个VC文件中没有对UIButton的引用。这是来自rootVC的代码:

var imInChinaButton : UIButton {
        var button = UIButton( frame: CGRect(
            x: 0,
            y: 0,
            width: 300,
            height: 300))
        button.setImage(#imageLiteral(resourceName: "button"), for: .normal)
        button.setTitle("hello", for: .normal)
        button.contentMode = UIViewContentMode.scaleAspectFit
        button.center = view.center
        button.backgroundColor = .clear
        button.isUserInteractionEnabled = true
        button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)

        return button
    }

    self.view.addSubview(imInChinaButton)
}

@objc func buttonTapped(_ sender: UIButton) {
    sender.setImage(#imageLiteral(resourceName: "pressedButton"), for: .normal)
    let resultsViewController = ResultsViewController()
    self.navigationController!.present(resultsViewController, animated: true, completion: nil)
}

任何帮助都会很棒!非常感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

您需要在viewDidLoad

中更改模式的背景
self.view.backgroundColor = .red

//

如果您不再需要backVC,则可以

UIApplication.shared.keyWindow?.rootViewController =  ResultsViewController()

但是暂时隐藏是不可能的,您可以这样做以在出现之前隐藏它们,但这不是一个好习惯

self.view.subviews.forEach { $0.isHidden = true } 

最好的方法是更改​​backgroundColor或完全清除旧的rootVC