2016-04-25 103 views
1

工作,我有靜態細胞Segue公司不是從靜態的UITableView

一個TableViewController我試圖從TableViewController和TableView中的細胞都產生賽格瑞(不是在同一時間)

然而,在這兩種情況下,didSelectRowAtIndexPath是不解僱

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     print("select") 
    } 

我也有嵌入collectionviewcontroller

class EventDetail: UITableViewController, UITextFieldDelegate, UICollectionViewDataSource, UICollectionViewDelegate { 

這可能是什麼原因造成的?

+0

你設置表視圖的委託? – TangZijian

+0

@TangZijian它是一個tableviewcontroller,我應該設置委託嗎? –

+0

在故事板中,您必須連接委託和數據源,但在類中不需要編寫類EventDetail:UITableViewController,UITableViewDelegate,UITableViewDataSource作爲您的類本身是UITableViewController的子類 – Hasya

回答

3

檢查你的tableview的選擇必須是單一的選擇,如果是「不選擇」,那麼didSelectedRowAtIndex將不會被調用。

enter image description here

您可以下載示例代碼和觀察它。

Sample download

還要檢查

enter image description here

理想的情況下你cellForRowAtIndex應該是這樣的

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
    let cell : CustomCell! = tableView.dequeueReusableCellWithIdentifier("ID_CustomCell", forIndexPath: indexPath) as! CustomCell 

    cell.selectionStyle = UITableViewCellSelectionStyle.None 

    cell.lblData.text = "CustomCell....." 
    return cell 

} 
+0

OMG謝謝。我失去了3個小時的生命:( –

+0

乾杯,最好的運氣, – Hasya

+0

一個問題,我如何使細胞無法選擇而沒有突破segue? –

1

如果您從tableviewcontroller創建了segue,請致電performseguewithidentifierdidselectRow。像,

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    print("select") 
    self.performSegueWithIdentifier("your segue identifier", sender: self) 
} 

希望這將有助於:)

+0

我已經試過這個,不起作用 –

+0

已經爲'屬性檢查器'設置了segue標識符嗎?是的然後檢查它是相同的方法和屬性檢查器 – Lion

+0

是的,我設置它並檢查了一切。 –