2016-07-17 66 views
1

我有一個UITableViewControllerUITableViewCell和Cell的XIB文件。如何推ViewController在UITableViewCell的@IBAction func

我的問題是如何從細胞中推UIViewController

in 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中實現。
+0

檢查你的storyboard是否是你的單元格中的成員? –

+0

不,我正在使用SlackTextViewController ...所以我通過使用代碼添加表的單元格:)感謝您的答覆! –

回答

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) 
+0

感謝您的回覆明天我會嘗試您的建議,我明天會回來。我非常感謝你。 –

+0

我有3個文件.. 1. TableViewController,2. TableViewCell,3. TableViewCell.xib和....按鈕@IBAction是在xib文件中...我把你的代碼?謝謝 –

相關問題