如何将@IBAction func 数据放入 TableView?
Posted
技术标签:
【中文标题】如何将@IBAction func 数据放入 TableView?【英文标题】:How to get @IBAction func data into TableView? 【发布时间】:2017-11-23 17:25:13 【问题描述】:我正在为 ios 中的搜索结果编写一个表格视图。
这是我的视图控制器:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource
var resultArray = NSMutableArray()
@IBOutlet weak var scoreTableView: UITableView!
@IBOutlet weak var inputText: UITextField!
override func viewDidLoad()
super.viewDidLoad()
override func viewWillAppear(_ animated: Bool)
scoreTableView.reloadData()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return resultArray.count
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
XXXXXXX
return cell
这是我的搜索和@IBAction 函数。
func search() -> NSMutableArray
XXXXXXXXX
return array
@IBAction func btnSearch(_ sender: Any)
resultArray = search()
但是,在构建之后,我的表格视图是空白的。在debugDescription()
中,我可以看到func search()
运行良好并打印了搜索日志。
tableview 中的resultArray
不是@IBAction 中的那个。是empty
。
【问题讨论】:
作为初学者,请不要遵循 Swift 中建议NSMutable...
集合类型的教程。您正在与强类型系统作斗争。将 resultArray
声明为原生 Swift Array
并尽可能具体,例如 var resultArray = [String()
PS:search()
函数是否运行异步任务?如果是,则不能使用返回值。
tableViews 的行为是正确的。根据您的代码,结果数组始终为空,您只需在 viewWillAppear 中重新加载 tableView,这不是必需的。请提供搜索方法上的代码以便更好地为您提供帮助
感谢您的慷慨建议。终于发现忘记给tableView分配DataSource和Delegate了。好尴尬.......
我使用 NSMutableArray 因为数据非常复杂。我刚刚为这个数组建立了一个模型。 class scoreModel: NSObject XXXXXX。无论如何,谢谢你们帮助我。你真好! (英语不是我的母语,如有错误请见谅。)
【参考方案1】:
更改 resultArray 后必须重新加载数据。
@IBAction func btnSearch(_ sender: Any)
resultArray = search()
scoreTableView.reloadData()
【讨论】:
重新加载数据不起作用。可悲的是,当我输入另一个 inputText 时,func search() 中的 resultArray 也没有改变。它只是在 debugDescription() 中显示了第一个。 在函数 btnSearch 上使用断点来确定这个方法是否被调用。如果没有,请尝试再次将其连接到您的按钮。 感谢您的慷慨建议。我通过将 DataSource 和 Delegate 的分配添加到 tableView 来修复。好尴尬.......【参考方案2】:更新:我只是忘记将 DataSource 和 Delegate 分配给 tableView。我从情节提要手动构建了 tableview。
而且我误解了,如果我在情节提要中分配数据源和委托,则需要分配。
override func viewDidLoad()
super.viewDidLoad()
scoreTableView.dataSource = self
scoreTableView.delegate = self
【讨论】:
以上是关于如何将@IBAction func 数据放入 TableView?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NSmutablearray 放入 NSString [关闭]