我有两个 View Controller 、委托(delegate)和一个字符串数组
我有一个委托(delegate)函数,旨在将第一个 VC 上的标签设置为第二个 VC 的 TableView 上选定的行中的字符串:
openSelected(selected: String, viewController: UIVIewController){
label.text = selected
}
这是我在第二个 VC 上的 didSelectRow 函数:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath){
var selected = savedStrings[indexPath.row]
delegate?.openSelected(selected: selected, viewController: self)
dismiss(animated: true, completion: nil)
}
代理设置正确。 TableView 显示不同行上的所有字符串。当我选择一行时,我希望当前 View 消失并显示带有所选字符串作为文本的标签。但是,该行已被选中,但没有任何反应,我可以继续使用 TableView 并选择新行,但什么也不会发生。
为什么解雇功能不起作用/实际上解雇了 VC?希望这是足够的信息。谢谢。
最佳答案
这是表格UITableViewDelegate
的正确方法
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
还要确保在viewDidLoad
self.tableView.delegate = self
//
确认
class ViewController : UIViewController,UITableViewDelegate,UITableViewDataSource
关于ios - didSelectRowAtIndexPath 时关闭 View 并设置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50769746/