gpt4 book ai didi

swift - 从 CollectionViewCell 调用 NavigationController(以推送另一个 View Controller )

转载 作者:行者123 更新时间:2023-11-30 12:16:28 31 4
gpt4 key购买 nike

这就是我正在尝试做的事情。

class UserProfileHeader: UICollectionViewCell {

lazy var button: UIButton = {
let button = UIButton(type: .system)
//...
button.addTarget(self, action: #selector(handleButtonTapped), for: touchUpInside)
return button
}()

func handleButtonTapped() {
print("action working now")
// How to push another vc here?
}

// ...
}

我想调用一个navigationController来推送(显示)collectionViewCell中的另一个ViewController。我怎样才能访问那里?我试过了,没成功。是因为MVC模式吗? Cell 无法与他人通话?或者有什么方法可以制作吗?喜欢使用委托(delegate)/协议(protocol)?我对这些事情了解不多。

最佳答案

创建一个自定义委托(delegate)并设置为其 View Controller ,然后当您点击调用该委托(delegate)方法的 CollectionView 单元格按钮时,它将在您的 View Controller 内调用,您可以在其中推送 View Controller

func handleButtonTapped() {
//Your delegate method showuld be invoked here
delegate?.buttontappFromCollectionViewCell()

}

//Now inside your view controller
func buttontappFromCollectionViewCell() {
let vc = UIStoryboard(name: "storyboardName", bundle: nil).instantiateViewController(withIdentifier: "yourViewControllerIdentifier")
let navigationController = UINavigationController(rootViewController: vc)
navigationController.pushViewController(vc, animated: true)
}

关于swift - 从 CollectionViewCell 调用 NavigationController(以推送另一个 View Controller ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45380305/

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