我正在尝试获取index所选项目,TableView然后开始一些活动。不幸的是,我发现的大多数解决方案都在Objective-C或不起作用。
index
TableView
方法func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)不打印cell标签。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
cell
有人可以帮我吗?
导入UIKit 导入ResearchKit class TaskListViewController:UIViewController,UITableViewDataSource { 让task = [(“ Short walk”), (以下简称“测听”), (“手指轻敲”), (“反应时间”), (“空间跨度内存”) ] //表格中有多少节 func numberOfSectionsInTableView(tableView:UITableView)-> Int { 返回1 } //返回int多少行 func tableView(tableView:UITableView,numberOfRowsInSection部分:Int)-> Int { 返回task.count } //内容是什么 func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)-> UITableViewCell { var cell = UITableViewCell() var(testName)=任务[indexPath.row] cell.textLabel?.text = testName 返回单元 } //为每个表节命名 func tableView(tableView:UITableView,titleForHeaderInSection部分:Int)->字符串?{ 返回“任务” } func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){ 让indexPath = tableView.indexPathForSelectedRow(); 让currentCell = tableView.cellForRowAtIndexPath(indexPath!)作为UITableViewCell! println(currentCell.textLabel!.text) } 覆盖func viewDidLoad(){ super.viewDidLoad() } }
经过几次尝试,我将代码更改为与我发现的教程不同的代码。而且它也不起作用。现在我认为这是iOS模拟器的问题…
导入UIKit 导入ResearchKit class TaskListViewController:UIViewController,UITableViewDelegate,UITableViewDataSource { @IBOutlet var tableView:UITableView? var项目:[String] = [“ We”,“ Heart”,“ Swift”] 覆盖func viewDidLoad(){ super.viewDidLoad() self.tableView!.registerClass(UITableViewCell.self,forCellReuseIdentifier:“ cell”) } func tableView(tableView:UITableView,numberOfRowsInSection部分:Int)-> Int { 返回self.items.count; } func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)-> UITableViewCell { var cell:UITableViewCell = self.tableView!.dequeueReusableCellWithIdentifier(“ cell”)as!UITableViewCell cell.textLabel?.text = self.items [indexPath.row] 返回单元 } func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){ println(“您选择了单元格#\(items [indexPath.row])!”) } }
如果您想从单元格中获取值,则无需在 didSelectRowAtIndexPath
didSelectRowAtIndexPath
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { println(tasks[indexPath.row]) }
任务如下:
let tasks=["Short walk", "Audiometry", "Finger tapping", "Reaction time", "Spatial span memory" ]
您还必须检查cellForRowAtIndexPath您必须设置的标识符。
cellForRowAtIndexPath
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: indexPath) as UITableViewCell var (testName) = tasks[indexPath.row] cell.textLabel?.text=testName return cell }
希望能帮助到你。