我有一个UITableViewController
和UITableViewCell
以及Cell的XIB文件。
我的问题是如何从单元格中推送UIViewController
?
。
@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的成员。
答案 0 :(得分:1)
理想情况下,您可以在didSelectRowAtIndexPath方法调用中从表视图控制器中进行推送。为什么你说你必须在单元格中实现它?还有其他方法可以做到这一点,但从你所说的这可能是最好的镜头......
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)