gpt4 book ai didi

ios - 从 didSelectRow 方法中以编程方式推送新的 View Controller

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

我正在构建一个模因生成器,它使用一个 tableView 和一个 collectionView 来查看保存的模因。当用户点击 tableView 中的一个单元格时,图像应该通过从前一个 Controller 滑动 View 来呈现,而不是通过模态呈现为新 View ,情况就是这样。这是我当前的代码

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let meme = memes[indexPath.row]
let detailController = UIStoryboard(name: "DetailsStoryboard", bundle: nil).instantiateViewController(withIdentifier: "DetailsViewController") as! DetailsViewController
present(detailController, animated: true, completion: nil)
detailController.detailsImageView.image = meme.memedImage
}

我发现的一切都取决于使用 segue,而我不是。我可以在 didSelectRow 方法中使用 segue 吗? Here是 repo 的链接。

最佳答案

您必须使用 UINavigationController 来推送 Controller 。

第二,您不能通过 TableView didSelect 方法将图像设置为 DetailsViewController

相反,您可以将此图像传递给 DetailsViewController 并在特定 Controller 中设置此图像。

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let meme = memes[indexPath.row]
let detailController = UIStoryboard(name: "DetailsStoryboard", bundle: nil).instantiateViewController(withIdentifier: "DetailsViewController") as! DetailsViewController
detailController.memeImage = meme.memedImage //Pass image like this
self.navigationController?.pushViewController(detailController, animated: true)
}

DetailsViewController 中这样做

class DetailsViewController: UIViewController {

//Add one memeImage variable
var memeImage: UIImage?

override func viewDidLoad() {
super.viewDidLoad()

detailsImageView.image = memeImage
}
}

关于ios - 从 didSelectRow 方法中以编程方式推送新的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147897/

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