uiTabBar - 用于菜单NOT视图控制? (苹果手机)

时间:2010-01-04 10:40:32

标签: iphone uitabbarcontroller

快速提问 - 我的“第一视图”将成为我应用程序中的唯一视图。我使用Interface Builder为此视图添加了一个UITabBar。我只想将其用作菜单来控制滚动视图的内容。

例如,用户点击UITabBar中的第一个图标 - 我得到它的标签,然后根据它,将子视图添加到滚动视图。这工作正常......

...但是,我一直在查看tabbars上的一些教程,似乎有99%的时间用于控制视图。我只想让它返回我的标签。

所以我的问题是:我正在做什么?它可以用于简单地返回值而不是更改视图吗?如果这是常见/好的练习,我该如何参考呢?

我可以获取所选的项目标签,但实际上无法引用uiTabBar来选择第一个按钮。在我的.h文件中,我试图为控制器指定一个IBOutlet,但是我无法在IB中链接它。

感谢任何信息!

1 个答案:

答案 0 :(得分:3)

要接收已单击标签栏项目的通知,您需要修改视图控制器以实施UITabBarDelegate协议并为标签栏添加插座。为此,请将MyViewController.h中的声明修改为:

@interface MyViewController : UIViewController <UITabBarDelegate> {
    UITabBar *tabBar;
    ...
}

@property (nonatomic, assign) IBOutlet UITabBar *tabBar;

然后在MyViewController.m中实现tabBar:didSelectItem方法,如下所示:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    NSLog(@"Tab clicked: %d", item.tag);
}

必须还将视图控制器设置为IB中标签栏的代理。 (提示:将标签栏中的'委托'插座连接到文件所有者)。

要从视图控制器访问标签栏,请使用tabBar属性并执行以下操作:

self.tabBar.selectedItem = [self.tabBar.items objectAtIndex:0];

至于这是否是一个好主意 - 为什么不呢?所有教程都显示了一个与UITabBarContoller一起使用的标签栏来切换视图,但它也可以作为一个独立的控件运行。只要您没有违反任何HIG规则,那么您实现接口切换的方式取决于您。