使用通知观察器将选定的行发送到另一个ViewController迅速

时间:2019-06-27 15:37:39

标签: ios swift

本质上,我试图使用Notifications将选定的tableView行的值发送到另一个ViewController。但是由于某种原因,什么也没有传递给第二个控制器。

在TableViewController中,我通过执行以下操作选择了所选行的值:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


    let portfolio = structure[indexPath.row]
    NotificationCenter.default.post(name: Notification.Name("selectedTOCustomer"), object: nil, userInfo: ["TOCustomerKey": portfolio])
}

接下来,我转到另一个视图控制器,并在ViewDidLoad中添加一个观察者:

override func viewDidLoad() {
    super.viewDidLoad()

    NotificationCenter.default.addObserver(self, selector: #selector(self.myFunc2(notification:)), name: Notification.Name("selectedTOCustomer"), object: nil)

它所引用的函数如下,应该打印第二个ViewController中选定的行的值:

@objc func myFunc2(notification: Notification) {

    guard let data = notification.userInfo as? [String: String] else {
        return
    }
    print("\(data["TOCustomerKey"])")

}

更新:

从JSON数据填充的TableView行是第一个视图控制器和引用顶部的变量

var structure = [AlreadyScheduledStructure]()

结构由

组成
struct AlreadyScheduledStructure: Codable {
    let person: String

}

0 个答案:

没有答案