快速提问 - 我的“第一视图”将成为我应用程序中的唯一视图。我使用Interface Builder为此视图添加了一个UITabBar。我只想将其用作菜单来控制滚动视图的内容。
例如,用户点击UITabBar中的第一个图标 - 我得到它的标签,然后根据它,将子视图添加到滚动视图。这工作正常......
...但是,我一直在查看tabbars上的一些教程,似乎有99%的时间用于控制视图。我只想让它返回我的标签。
所以我的问题是:我正在做什么?它可以用于简单地返回值而不是更改视图吗?如果这是常见/好的练习,我该如何参考呢?
我可以获取所选的项目标签,但实际上无法引用uiTabBar来选择第一个按钮。在我的.h文件中,我试图为控制器指定一个IBOutlet,但是我无法在IB中链接它。
感谢任何信息!
答案 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规则,那么您实现接口切换的方式取决于您。