gpt4 book ai didi

swift - 为什么我的 UIButton 在 segue 之后仍然存在?

转载 作者:行者123 更新时间:2023-11-28 07:43:27 25 4
gpt4 key购买 nike

我一直在尝试和练习以编程方式构建应用程序,只是无法理解为什么我的根 VC 中的 UIButton 在模态转场后仍保留在下一个 View 中。当我通过 Storyboard 执行此操作时, View 中的所有元素都会消失。

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

enter image description here

模态按下按钮会显示下一个 View Controller ,但 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)
}

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

最佳答案

您需要在 viewDidLoad

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

//

如果你不再需要 backVC ,你可以

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

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

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

最好的办法是改变backgroundColor或者完全清除旧的rootVC

关于swift - 为什么我的 UIButton 在 segue 之后仍然存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51579434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com