我目前正在研究一個iOS項目,我對它很陌生。自定義UITableViewController的didSelectRowAtIndexPath永遠不會被調用
說明我的問題: 我做了我自己的TableView(的UITableViewController的推導包含一個UITableView的)。不幸的是,「didSelectRowAtIndexPath」方法從未被調用過。我仍然可以滾動TableView - 我只是不能選擇一行!我的項目( - 結構)的
說明:
MyAppDelegate
- 包含MyWindow
MyWindow
- 使用MyRootViewController
MyRootViewController
- 包含MyFirstViewController
MyRootViewController
- 包含MySecondViewController
MyFirstViewController
- 僅包含視圖和一些按鈕和標籤作爲起始視圖。MyFirstViewController
- 實現ViewMediator
MySecondViewController
- 包含MyTableViewController
MySecondViewController
- 實現ViewMediator
ViewMediator
- 協議讓視圖通信而不需要知道彼此MyTableViewController
- 從UITableViewController
派生MyTableViewController
- 包含UITableView
(構造函數中製造)MyTableViewController
- 覆蓋cellForRowAtIndexPath
(這個作品,所以元素)MyTableViewController
- 覆蓋didSelectRowAtIndexPath
(不會被調用)MyTableViewController
- 包含MyTableViewModel
MyTableViewModel
- 只是一個類來讀取文件並加載數據到TableView
我已經嘗試過:手動
- 3.1集「MyTableViewController」爲代表的含UITableView的 - 即使這應該是自動完成。
- 3.2將UITableView設置在「MyTableViewController」之外,稍後將其設置爲「MyTableViewController.view」和/或「MyTableViewController.tableView」。
- 3.3我在UITableView中手動啓用了UserInteraction。認爲這不可能是真正的問題,因爲滾動工作正常。
滑稽的事實:它的工作之前,我剛添加到ViewControllers的通信細微的變化。在直接溝通之前(單向),現在他們通過中介(雙向)溝通 - 衆所周知的中介模式。這不應該影響視圖和它的控制器,對吧?
歡迎使用stackoverflow。編輯你的問題以包含你的'tableView:didSelectorRowAtIndexPath:'方法。 – 2012-08-06 06:25:48
「MyTableViewController - 派生自TableViewController」 - 但從「TableViewController」的派生位置?你的意思可能是'UITableViewController'? - 如果是這樣,只需編輯你的問題。 – Mundi 2012-08-06 07:30:17
謝謝。是的,我的意思是'UITableViewController'。 – 2012-08-06 20:02:19