【问题标题】:Transport data over two ViewController通过两个 ViewController 传输数据
【发布时间】:2018-08-03 15:11:21
【问题描述】:

我有一个应用程序,其中有三个分层的tableViews。第一个是tableView,包含用户的所有俱乐部。当他选择一个俱乐部时,他会到达ViewController ,其中显示了所选俱乐部的所有成员。

在代码中是这样的:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let destinationVC: UIViewController
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "memberViewController") as! MemberViewController
            destinationVC = vc
            let selectedRow = self.tableViewClub.indexPathForSelectedRow?.row
            
            vc.club = clubs[selectedRow!]
        }
        self.navigationController?.pushViewController(destinationVC, animated: true)
    }

问题

然后我可以通过MemberViewController 访问该俱乐部的成员。现在我想再次传输数据,但这次传输到另一个ViewController,它连接到MemberViewControllersegue。

问题

我如何将俱乐部的成员转移到ViewController - 它通过segue 连接到MemberViewController - 因为没有我可以在代码中写入的选定行。

【问题讨论】:

  • 您的 MemberViewController 中有“club”属性来保存数据吗?将相同的内容传递给其他 VC 这有什么问题?
  • 您可以在 MemberViewController 中的 prepare(for segue: UIStoryboardSegue, sender: Any?) 中传递数据。从 MemberViewController 导航到 ViewController 时,将调用此方法。请参考segue

标签: ios swift uitableview


【解决方案1】:

在您的“MemberViewController”中,编写以下代码:-

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
 // Create a new variable to store the instance of ViewController 
   if let destinationVC = segue.destinationViewController as? ViewController
    destinationVC.members = members
    }
}

当您通过 segue 将一个视图控制器推送到另一个视图控制器时,会调用此方法。所以你可以将你的“成员”从“MemberViewController”传递给“ViewController”

【讨论】:

  • 为什么用这个旧版本而不是 prepare(segue:sender)?
  • 哦,是的,我只是告诉你这个想法。您可以更新方法。
【解决方案2】:

你应该给 segue 一个标识符,然后试试这个代码。在 MemberViewController 中

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "identifier"{
        let destinationViewController = segue.destination as? ViewController
        dectination.clob = self.club
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多