如何在表格视图中以编程方式选择一行? (斯威夫特 4.0)

Posted

技术标签:

【中文标题】如何在表格视图中以编程方式选择一行? (斯威夫特 4.0)【英文标题】:How to select a row programmatically in table View ? (Swift 4.0) 【发布时间】:2018-10-29 14:24:43 【问题描述】:

我有一个 tableViewController,我的数据源运行良好,但我无法以编程方式选择一行。

我试过了:

class DocumentTableViewController: UITableViewController 

    override func viewDidLoad() 
        super.viewDidLoad()

        tableView.selectRow(at: IndexPath(row: 0, section: 0), animated: true, scrollPosition: UITableViewScrollPosition(rawValue: 0)!)
     

当我运行时,tableView 没有选择任何内容。 我该如何解决?

【问题讨论】:

那时(viewDidLoad)你设置了tableView数据源和委托吗?它现在有数据吗? 你设置了代理吗? UITableViewController 中不需要委托和数据源 这能回答你的问题吗? How to programmatically select a row in UITableView in Swift 【参考方案1】:

你的线很早,试一下

override func viewWillAppear(_ animated: Bool) 
    super.viewWillAppear(animated)
    tableView.selectRow(at: IndexPath(row: 0, section: 0), animated: true, scrollPosition: UITableViewScrollPosition(rawValue: 0)!) 

或者这个里面viewDidLoad

tableView.reloadData()
tableView.selectRow(at: IndexPath(row: 0, section: 0), animated: true, scrollPosition: UITableViewScrollPosition(rawValue: 0)!)

【讨论】:

【参考方案2】:

在 Swift 5 中:

tableView.selectRow(at: IndexPath(row: 0, section: 0), animated: true, scrollPosition: UITableView.ScrollPosition(rawValue: 0)!)

【讨论】:

以上是关于如何在表格视图中以编程方式选择一行? (斯威夫特 4.0)的主要内容,如果未能解决你的问题,请参考以下文章

斯威夫特:无法弄清楚如何保存用户离开表格视图的方式

用户输入不适用于在表格视图中以编程方式添加的文本字段

如何在iphone中以编程方式更改按钮文本

在 Swift 中以编程方式突出显示 UITableViewCell

如何删除表格视图中的多行? [复制]

如何在android中以编程方式创建表格行和列边框