我仍然是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'类型的对象上找不到“属性'forename'。”
如果您能够留下一些非常棒的示例代码,我们将不胜感激。
答案 0 :(得分:0)
基本上,对于2个控制器之间的传递数据,您可以使用2种设计模式:Delegation或Observer.
在您的情况下,您使用委托。您的头文件中是否有名为forename
的公共财产?
答案 1 :(得分:0)
您的代码存在的问题是您访问尚未在内存中创建的uicontrol。你必须像这样改变你的陈述执行的顺序......
UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
holidayQuestion * viewController = [storyBoard instantiateViewControllerWithIdentifier:@"stageOne"];
[self presentViewController:viewController animated:YES completion:nil];
viewController.forename = @"Hello World";