【发布时间】:2015-09-23 17:26:02
【问题描述】:
我需要使用 Swift 1.2 以编程方式在 UITableView 中选择一行。
这是简单的代码:
var index = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.selectRowAtIndexPath(index, animated: true, scrollPosition: UITableViewScrollPosition.Middle)
self.tableView(self.tableView, didSelectRowAtIndexPath: index)
上面给了我以下错误:
无法使用类型为“(NSIndexPath!,动画:Bool,scrollPosition:UITableViewScrollPosition)”的参数列表调用“selectRowAtIndexPath”
我的 Swift 1.2 代码有什么问题?
我的 UItableView 已在我试图调用上面代码的 UIViewController 中的 IB 中创建。 当我将代码放在 UITableViewController 中时,编译器不会给出任何错误。 我需要在容器中嵌入 UITableViewController 还是有其他方法?
【问题讨论】:
-
不,第二行编译得很好。
-
您是否在视图控制器中定义了
tableView属性(并将其连接到IB 中的表视图)?这可能是stackoverflow.com/questions/30733126/… 的副本吗? -
@MartinR 我确实使用 IBOutlet weak var menuTable: UITableView 在我的 VC 中定义并连接了一个 tableView 属性!但是我没有控制这个 tableView 的 UITableViewController。我不能用 TVC 替换我的 VC,因为我需要 iPad 项目中的其他元素。我的 VC 中有一个主容器,它对 tableView 中的选择做出反应。我试图在我的 VC 中创建一个容器,然后在其中嵌入一个 TVC。这会正确显示菜单项,但是我在更改主容器显示的内容时遇到了问题(基于菜单中的选择)。具体来说,它有一个问题:
-
@Mikee:如果您的表格视图属性称为“menuTable”,那么您应该将其称为
self. menuTable.selectRowAtIndexPath(...),下一条语句类似。 -
@MartinR 太棒了!如此简单 - 非常感谢您的帮助!您是否愿意将您的评论作为答案,以便我可以为您提供正确的答案?
标签: ios swift uitableview