将对象传递给 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)
}
在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)
}