gpt4 book ai didi

swift - 如何在 UITableViewCell 的 @IBAction 函数中推送 ViewController

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

我有一个 UITableViewControllerUITableViewCell 以及 Cell 的 XIB 文件。

我的问题是如何从单元格中推送 UIViewController

在 UITableViewCell 中。

 @IBAction func pushBtnTapped(sender: AnyObject) {
// navigate to post view controller
let guest = self.storyboard?.instantiateViewControllerWithIdentifier("GuestCollectionVC") as! GuestCollectionVC
self.navigationController?.pushViewController(guest, animated: true)
}

我收到一条错误消息。 self.storyboard 不是 UITableCell 的成员。

  • 我知道还有另一种方法可以实现它。但是我必须在 TableViewCell 中实现。

最佳答案

理想情况下,您会在 didSelectRowAtIndexPath 方法调用中从 TableView Controller 推送。为什么说一定要在cell中实现呢?还有其他方法可以做到这一点,但从你所说的来看,这可能是最好的方法......

self.performSegueWithIdentifier("YourSegueId", sender: nil)

然后在prepareForSegue

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

//get the index path of the selected row
let indexPath = self.tableView.indexPathForSelectedRow

//just an example if you want to pass something to the other vc
let item = self.responseItems[indexPath!.row]

if segue.identifier == "YourSegueId" {

YourVC = segue.destinationViewController as! YourVC

YourVC.item = item
}
}

如果你想通过按钮来做,你可以在 prepareForSegue 方法中做这样的事情......现在你有了按钮和它的索引路径

  let button = sender as! UIButton
let view = button.superview
let cell = view?.superview as! YourCell
let indexPath = tableView.indexPathForCell(cell)

关于swift - 如何在 UITableViewCell 的 @IBAction 函数中推送 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38417167/

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