我一直在以编程方式尝试和实践构建应用程序,只是不明白为什么在进行模态搜索后,来自根VC的UIButton仍保留在下一个视图中。当我通过情节提要进行操作时,视图中的所有元素都会消失。
我的rootVC由一层和一个UIButton组成:
按下按钮会模态显示下一个视图控制器,但UIButton仍然存在:
第二个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)
}
任何帮助都会很棒!非常感谢您的宝贵时间。
答案 0 :(得分:0)
您需要在viewDidLoad
self.view.backgroundColor = .red
//
如果您不再需要backVC,则可以
UIApplication.shared.keyWindow?.rootViewController = ResultsViewController()
但是暂时隐藏是不可能的,您可以这样做以在出现之前隐藏它们,但这不是一个好习惯
self.view.subviews.forEach { $0.isHidden = true }
最好的方法是更改backgroundColor或完全清除旧的rootVC