2017-01-26 23 views
1

我有幾個不同的風險投資項目......他們兩個有TableViews斯威夫特DidSelectRowAt不點火

第一個工作完全正常,我有一個自定義視圖在那裏等

第二一個也是自定義的,它填寫的信息就好了,但不像第一個......我不能點擊它來繼續下一個VC

我已經正確設置了委託和數據源。我用我的桌面視圖在我的項目上有另一個VC,它工作得很好。我能想到的第一件事可能是阻止它工作是一個UILabel佔用了90%的單元格,但我不認爲這是因爲我製作的標籤很小並嘗試點擊然後它仍然不會觸及斷點。

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

    let row = indexPath.row 

    selectedService = serviceArray[row].serviceID! as String 

    if selectedService != "" { 

     self.performSegue(withIdentifier: "fromCardDetailsToEditService", sender: self) 

    } 
    } 

我不知道它是否重要,但是...我所在的VC是在Tab Bar Controller和Nav Bar Controller中。對於我在Tab Bar中執行的賽季,這有什麼關係嗎?而這個按鈕不是一個標籤欄項目?

+0

你確定第二個VC被設置爲表視圖的數據源和委託嗎? – Sweeper

+0

所以在具有TableView(我想離開的VC)的VC中,我放入了ViewDidLoad ... self.tableView.delegate = self,self.tableView.dataSource = self ...這是我擁有的它在另一個VC與tableView ....我需要將這兩行移動到自定義TableViewCell類? – RubberDucky4444

+0

不,它與表格視圖單元格無關。這基本上意味着問題不是因爲你沒有設置委託。 – Sweeper

回答

6

你有沒有GestureRecognizer你的UIViewController,因爲在GestureRecognizertableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)沒有調用的情況下。

+0

是的我做的,我不知道中斷didSelectRowAt – RubberDucky4444

+0

然後,請刪除該GestureRecognizer爲您的UIVIewController,然後再次嘗試並檢查tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath)將被調用或不。 –

+0

是的,解決了它,但理想情況下,我想同時具有...我使用該手勢識別器來解除鍵盤 – RubberDucky4444

2

我想出瞭如何讓我的手勢識別器和didSelectRowAt。

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(CardDetailsViewController.dismissKeyboard)) 
view.addGestureRecognizer(tap) 

這是我已經有,這是造成衝突。

要修復它,這個簡單的線讓我解僱鍵盤,並能夠點擊我的細胞。

tap.cancelsTouchesInView = false