0

我对 Objective C 和 xCode 还很陌生,所以请原谅我。

我在故事板中设置了两个视图控制器,我使用以下代码移动到另一个:

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];

虽然这不起作用,我得到的只是一个错误“在'UIViewController'类型的对象上找不到属性'名字'”。

感谢您提供任何帮助,如果您能给我一些示例代码,那将是非常棒的。

4

2 回答 2

0

基本上,为了在 2 个控制器之间传递数据,您可以使用 2 种设计模式:委托观察者。

在您的情况下,您使用委托。forename您的头文件中有名称的公共财产吗?

于 2013-02-21T11:02:30.010 回答
0

您的代码的问题是您访问尚未在内存中创建的 uicontrols。您必须像这样更改语句的执行顺序...

UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
holidayQuestion * viewController = [storyBoard instantiateViewControllerWithIdentifier:@"stageOne"];

[self presentViewController:viewController animated:YES completion:nil];
viewController.forename = @"Hello World";
于 2013-02-21T11:09:13.910 回答