我创建了一个TableView
,其中包含TableViewCell
。
我希望TableView
中的单元格在单独的ViewController
中打开。
我的故事板看起来像这样:
我的TableViewController
有这个:
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
}
}
}
在我的 PageViewController.swift 中,我有这个:
var page: Page?
override func viewDidLoad() {
super.viewDidLoad()
if let page = page {
chapter.text = String(page.chapter)
verse.text = String(page.verse)
}
}
我没有收到任何错误。但是攻击细胞并不算什么。我可能会失踪什么?
答案 0 :(得分:1)
试试这个:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
performSegueWithIdentifier("ShowVerse", sender: self)
}
答案 1 :(得分:1)
<强>夫特强>
didSelectRowAtIndexPath中的代码
UpperV.y
在切换到下一个视图控制器之前,如果要将值传递给下一个视图控制器
self.performSegueWithIdentifier("homeSegue", sender: self)
的目标C 强>
didSelectRowAtIndexPath中的代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "homeSegue")
{
var homeController = segue.destinationViewController as? ViewController
homeController.name = "valeu"
}
}
在切换到下一个视图控制器之前,如果要将值传递给下一个视图控制器
[self performSegueWithIdentifier:@"ShowVerse" sender:self];