在视图控制器之间传递数据
问题描述:
对于Objective C和xCode,我还是比较新的,所以请原谅我。在视图控制器之间传递数据
我用下面的代码在我的故事板双视角控制器设置和IM移动到另一个:
UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController * viewController = [storyBoard instantiateViewControllerWithIdentifier:@"stageOne"];
[self presentViewController:viewController animated:YES completion:nil];
现在这个班上控制第二视图控制器我有一个属性的设置,虽然工程巨大,我试图发送数据。我试图如下:
UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController * viewController = [storyBoard instantiateViewControllerWithIdentifier:@"stageOne"];
viewController.forename = @"Hello World";
[self presentViewController:viewController animated:YES completion:nil];
虽然这不工作,我得到的是一个错误“PROPERT‘用的名字’在类型‘的UIViewController’的对象未找到”。
任何帮助表示赞赏,如果你能给我留下一些例子代码,那将是太棒了。
答
您的代码的问题是您访问尚未在内存中创建的uicontrols。你必须改变你的语句的执行顺序,像这样...
UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
holidayQuestion * viewController = [storyBoard instantiateViewControllerWithIdentifier:@"stageOne"];
[self presentViewController:viewController animated:YES completion:nil];
viewController.forename = @"Hello World";
答
基本上,对于2个控制器之间传递数据,则可以使用2种设计模式:Delegation或Observer.
在你的情况,可以使用委托。你的头文件中是否有名称为forename
的公共财产?
+0
该属性定义为:@property(strong,nonatomic)NSString * forename; – Adam 2013-02-21 11:08:38
不幸的是,我仍然有同样的错误:“属性'forename'未找到类型'UIViewController'” – Adam 2013-02-21 11:14:03
可以确保属性”forename“声明正确或不在该视图控制器? – Ganapathy 2013-02-21 11:17:40
@property(strong,nonatomic)NSString * forename; – Adam 2013-02-21 11:21:08