我目前正在研究一个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