gpt4 book ai didi

ios - 在传递 prepareForSegue 时,如何将我的模型对象传递给我的 VC?

转载 作者:行者123 更新时间:2023-11-29 01:10:46 25 4
gpt4 key购买 nike

我的 prepareForSegue 代码如下所示:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "ShowVerse" {

let pageDetailViewController = segue.destinationViewController as! PageViewController

// Get the cell that generated this segue.
if let selectedPageCell = sender as? PageTableViewCell {
let indexPath = tableView.indexPathForCell(selectedPageCell)!
let selectedPage = pages[indexPath.row]
pageDetailViewController.page = selectedPage
}
}

}

然而,这一行:

let selectedPageCell = sender as? PageTableViewCell

返回 nil,因此没有信息传递给 ViewController。

我如何确定返回 nil 的原因?最终,我如何才能成功地将 selectedPageCell 作为 PageTableViewCell 分配给我的发送者。

我的TableViewCell.swift:

import UIKit

class PageTableViewCell: UITableViewCell {

// MARK: Properties
@IBOutlet weak var chapter: UILabel!
@IBOutlet weak var verse: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

}

I'm basing my app off of this Apple Tutorial

最佳答案

这里您真正需要的是所选行的索引 - 因此您可以将其作为类级变量,并将其分配到 didSelectRowAtIndexPath

这是代码的大纲——包含关于类名的各种假设

class MyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
{
var selectedIndexPathRow = -1

... more code ...

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
selectedIndexPathRow = indexPath.row
}


... more code ...

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "ShowVerse"
{
if selectedIndexPathRow != -1 // default value to show that something has been selected
{
pageDetailViewController.page = pages[selectedIndexPathRow]
}
}
}

... more code ...

}

关于ios - 在传递 prepareForSegue 时,如何将我的模型对象传递给我的 VC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35777340/

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