我有一个应用程序,其中有三个层次结构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
,该MemberViewController
通过segue
连接到ViewController
。
我如何将俱乐部的成员转移到MemberViewController
上,而$Hello
是通过segue连接到com.jayway.jsonpath.InvalidPathException: Illegal character at position 1 expected '.' or '[
的,因为没有选定的行,所以我可以在代码中写出来。
答案 0 :(得分:2)
在您的“ 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将一个viewController推送到另一个时,将调用此方法。因此,您可以将“成员”从“ MemberViewController”传递到“ ViewController”
答案 1 :(得分:0)
您应提供一个标识符以进行隔离,然后尝试使用此代码。在MemberViewController中
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "identifier"{
let destinationViewController = segue.destination as? ViewController
dectination.clob = self.club
}
}