所以这是我的奇怪问题
我有一个使用故事板的小应用程序
我有1个UITabBarController
,有2个标签:
- 1 UITableViewController
(子类)
- 1 UIViewController
(只有一个UILabel,到现在为止没有任何作用)
UITableViewController是子类,我提供:
- numberOfSectionsInTableView(tableView: UITableView) -> Int
- tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
- tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath)
- tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
tableview有2个部分(7和1行)
第1部分中的行是自定义单元格,选中时不应执行任何操作
第2部分中的行是标准UITableViewCell
,应该开始下载
但是,当我选择任何单元格tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath)
时,甚至只有在选择了另一个单元格(不再相同)之后,才会调用didSelect,并选择我选择的第一个单元格。
另一个例子; (x,x)表示所选的indexPath
(1,0),什么都不做 - >选择(0,6),(1,0) - >选择(0,2),(0,6) - >选择(1,0),(0,2)
加法:
- 突出显示正在按预期工作。只是tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath)
的电话不是
- tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath?
被称为合适。
解决方案:
委托方法中有点错字。我实施了didDeselectRowAtIndexPath
而不是didSelectRowAtIndexPath
答案 0 :(得分:6)
您正在呼叫didDeselectRowAtIndexPath
而不是didSelectRowAtIndexPath
。
你应该使用这个方法:
tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
答案 1 :(得分:1)
请检查您的委托方法,它应该是;
tableView(tableView: UITableView, selectRowAtIndexPath indexPath: NSIndexPath)