将对象传递给 Swift 中的 viewcontroller

Pass object to viewcontroller in Swift

Objective-C中如果你需要传递一个对象给ViewController你可以这样做:

在目标 .h 文件中

@property NSObject * contact;

正在发送.m文件

MyVC *destVC = [self.storyboard instantiateViewControllerWithIdentifier:@"myVC"];
destVC.contact = contact;
[self.navigationController pushViewController:destVC animated:YES];

我正在尝试使用以下代码在 Swift 中执行此操作:

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let destVC = storyBoard.instantiateViewController(withIdentifier: "contactDetail")
//Following line causes error
//destVC.contact = latestContact
self.navigationController!.pushViewController(destVC, animated: true)

VC 启动正常,但是当我尝试用 destVC.contact = latestContact 向它传递一个变量时,编译器说

value of type ViewController has no such member contact.

将其投射到您的子classed 视图控制器。假设您的详细联系信息视图控制器 class 名称是 ContactDetailsViewController

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
if let destVC = storyBoard.instantiateViewController(withIdentifier: "contactDetail") as? ContactDetailsViewController {
   destVC.contact = latestContact
   self.navigationController!.pushViewController(destVC, animated: true)
}