gpt4 book ai didi

ios - 为什么返回按钮无法从 ViewController 返回?

转载 作者:行者123 更新时间:2023-12-04 07:25:05 26 4
gpt4 key购买 nike

我以编程方式使用 SecondView。我单击 ViewController 中的按钮打开 SecondView Controller ,但现在我想从 SecondView 回到 ViewController。我在 SecondView 中没有 Storyboard ,我想单击 closeButton 返回 ViewController。我的代码可以工作,但是当我单击关闭按钮时它不起作用。任何的想法?

import UIKit

class SecondView: UIViewController {


var closeButton = UIButton()

override func viewDidLoad() {
super.viewDidLoad()

closeButton.addTarget(self, action: #selector(dismissActionSheet), for: .touchUpInside)
}

@objc func dismissActionSheet() {
self.navigationController?.popViewController(animated: true)
}

}

最佳答案

您正在实例化一个新的 UIButton , 添加目标,但从不将按钮添加到 UI。如果您在 UI 中看到一个按钮,则它必须是您在 Interface Builder 中添加的按钮,而不是您在此处引用的按钮。我怀疑你的意图不是:

var closeButton = UIButton()
反而:
@IBOutlet var closeButton: UIButton!
……然后在 IB 中钩住那个按钮的 socket 。

或者更好,而不是在 viewDidLoad 中添加目标, 连接 @IBAction对于直接在 IB 中的按钮:
@IBAction func didTapButton(_ sender: Any) {
navigationController?.popViewController(animated: true)
}
您似乎不需要 closeButton导出(至少到目前为止您与我们分享的内容)。

顺便说一句, popViewController仅当它嵌入在导航 Controller 中时才有效。如果您不使用导航 Controller (即,您“呈现” View Controller 而不是“推送” View Controller ), navigationController将是 nil (和 navigationController?.popViewController 不会做任何事情)。如果不使用导航 Controller ,请调用 dismiss而不是 popViewController .

关于ios - 为什么返回按钮无法从 ViewController 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68260221/

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