我有1个View Controller和1个Tab Bar Controller Controller和2个Navegation Controller。
在我的简单视图中,我有一个表单,然后当我点击按钮"登录"我想在我的标签栏控制器中加载第一个视图。
这段代码完美无缺:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
Inicial *telaInicial = [storyboard instantiateViewControllerWithIdentifier:@"tabBar"];
[self presentViewController:telaInicial animated:YES completion:nil];
但我想发送和重视这个观点" Inicial"我说这个:
telaInicial.email = email.text;
但我收到此错误消息:
***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [UITabBarController setEmail:]:无法识别的选择器发送到实例0x9fdc8f0'
答案 0 :(得分:3)
您认为telaInicial
的实例的对象Inicial
实际上是UITabBarController
,因此您无法在其上设置email
属性,因为它不存在。
我想你想要这样的东西......
UITabBarController *tabBarController = [self.storyboard instantiateViewControllerWithIdentifier:@"tabBar"];
UINavigationController *navController = tabBarController.viewControllers[0];
Inicial *telaInicial = navController.topViewController;
telaInicial.email = // blah
答案 1 :(得分:0)
这意味着telaInicial对象没有setEmail方法。这是您编写的子类的实例吗?如果是这样,您可能会收到错误,因为您还没有为它编写setEmail方法,或者因为您还没有将实例变量email声明为@property,在这种情况下,它的setter和getter方法将由XCode自动合成(在XCode 4.something之前,我认为您需要明确地合成您的属性 - 在该版本之后,它们是自动的)。
答案 2 :(得分:0)
尝试编写将存储数据的类。 你可以从AppDelegate访问它(不是很好的解决方案,但非常快)。