2013-02-05 45 views
-1

首先,我是一个object-c的初学者,我正在研究它。将数据从UIViewController传递给带有委托的UITabBarController?

我想创建一个简单的应用程序,只是为了学习的委托作为一个人建议我在另一个topic

局势: - 故事板; - UITabBarController; - UIViewController。

该应用程序必须从标签栏控制器(FirstViewController和SecondViewController),从FirstViewController我想要去ViewController(ThirdViewController),并在那里我有一个滑块和后退按钮。 我试图使用委托将滑块的内容从ThirdViewController传递给FirstViewController。

当运行该应用程序,启动画面后,它崩溃和我有回下面的消息:

2013年2月5日19:16:08.382 PassDataBetweenTabsUsingDelegate [3761:C07] - [SecondViewController无法识别的选择器发送到实例0x74c4ed0 2013-02-05 19:16:08.384 PassDataBetweenTabsUsingDelegate [3761:c07] ***终止应用程序由于 未捕获异常'NSInvalidArgumentException',原因: ' - [SecondViewController setDelegate: ]:无法识别的选择器发送到 实例0x74c4ed0'

这里也是entire project code,它的速度更快的是复制/粘贴代码的一部分。

我做错了与委托或我不知道的方式告诉给ThirdViewcontroller它有去第一,不关心二?

+0

请仔细阅读本:http://www.theappcodeblog.com/2011/04/15/passing-data-between-views-tutorial-using-a-protocol-delegate-in-your-iphone-app/(你的错误是你的第二个视图控制器没有它的委托属性,但你真的应该从一些教程开始) –

回答

1

的问题是在这条线:

ThirdViewController *svc = [self.tabBarController.viewControllers objectAtIndex:1]; 

[self.tabBarController.viewControllers objectAtIndex:1]因为你还没有在标签栏添加它不会返回ThirdViewController的实例。您刚刚通过模态segue将ThirdViewController与FirstViewController连接起来。

你需要做的是创建ThirdViewController的一个实例,然后设置它的委托,然后以模态方式呈现它。

+0

谢谢你的答案,我会尝试。 – Mark

+1

您可以在故事板中添加ThirdViewController的故事板ID(在身份检查器中)。然后在你的FirstViewController中使用“ThirdViewController * tvc = [self.storyboard instantiateViewControllerWithIdentifier:@”Third“];” ,然后添加委托:“tvc.delegate = self”,最后使用“[present presentViewController:animated:completion:]”方法呈现它。得到它了? –

+0

谢谢,你。与此同时呢。 非常感谢您的解释。 – Mark

相关问题