道歉,如果我的术语有点偏,对客观C来说是新的! 我试图将值从一个UIViewController类传递给另一个。我正在使用故事板。我可以使用以下代码显示第二个ViewController:
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"FormView"];
[self presentModalViewController:vc animated:YES];
工作正常。在我的第二个ViewController(FormView)头文件中,我设置了如下属性:
@interface FormController : UIViewController {
NSString *selectedBooking;
}
@property (nonatomic, retain) NSString *selectedBooking;
@end
如何从第一个控制器“传递值”到第二个控制器?据我所知,我必须像这样设置属性:
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"FormView"];
vc.selectedBooking = @"test";
[self presentModalViewController:vc animated:YES];
这给了我错误:在'UIViewController'类型的对象上找不到属性'selectedBooking'。
设置属性的正确方法是什么?我应该使用其他东西而不是instantiateViewControllerWithIdentifier吗?
由于
答案 0 :(得分:7)
你需要施展它。
即
FormController *fc = (FormController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"FormView"];
fc.selectedBooking = @"test";
[self presentModalViewController:fc animated:YES];
然后你的其余代码将起作用:D
答案 1 :(得分:2)
如果您不想导入课程FormController
并继续使用它,您可以按照以下步骤操作。非常方便:
UIStoryboard *mainStoryboard = ..
UIViewController *vc = ...
[vc setvalue:@“test”ForKey:@“selectedBooking”]; //使用KVC
[self presentModalViewController:vc animated:YES];
注意:这仅适用于属性。