1

我的故事板中有一个简单的 TabBar-Controller。ViewController 1 周围有一个导航控制器。ViewController 2 没有。

当 App 启动时,首先显示 ViewController 1。

我需要实现以下方法:

-(void)tabBar:(UITabBar *)tabBar didSelectItem(UITabBarItem *)item

但我无法设置 UITabBar 的代表。我想在 ViewController 1 中设置 Deleagte。在 IB 中我可以显示委托属性,但我不能画线。我试图以编程方式设置委托。但无论我在哪里设置,应用程序总是崩溃。那么我必须在哪里设置我的 UITabBar 的代表?

4

2 回答 2

1

您应该让 App Delegate 成为标签栏的代表。您应该能够从情节提要中的选项卡栏控制器拖动到 AppDelegate(可能是文件的所有者)。

在代码中,您可以获得对标签栏控制器的引用并tbc.delegate = selfdidFinishLaunchingWithOptions:.

在这两种情况下,请确保首先通过添加<UITabBarControllerDelegate>到接口声明使委托侦听委托方法。

于 2013-08-28T11:25:26.860 回答
1

我找到了解决这个问题的方法。我所做的只是以下,我为我的 UITabBarController 创建了一个类。我将协议放入头文件中。切换到 .m 并实施 - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item方法。就是这样。无需显式设置委托。现在调用委托方法。

于 2013-08-29T10:01:35.630 回答