使用选项卡栏项目设置操作 - iPhone

5
我不确定是否可能,但有办法将选项卡条目点击处理为常规按钮点击(action)吗?原因是:在我的应用程序中有一个选项卡条,对于大多数选项卡条目,在触摸时我不会更改屏幕,但我会更改视图中显示的数据。似乎使用TabBarAppDelegate有点过头了...有更好的方法吗?
谢谢
3个回答

14

最直接的方法是使用UITabBarDelegate。抱歉。实现您的类并通过在类定义后添加<UITabBarDelegate>继承协议,例如:

@interface MyViewController : UIViewController<UITabBarDelegate>

然后在该类中定义方法tabBar:didSelectItem:,例如:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    // Do Stuff!
    // if(item.title == @"First") {...}
}
然后像这样在你的选项卡栏上设置代理:myTabBar.delegate = myClassInstancetabBar:didSelectItem: 方法可以放在包括视图控制器在内的任何地方,并且是您获取按钮被单击事件的位置。更多信息请参见:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITabBarDelegate_Protocol/Reference/Reference.html

1
明白了,谢谢!我还发现了一个不错的参考链接:https://discussions.apple.com/thread/2099944?start=0&tstart=0 - coder

3
个人而言,我会使用 UISegmentedControl 并将其放置在 UIToolbarUINavigationBar 中。这样做可以获得相同的触摸切换数据效果,但不必交换视图控制器(或尝试绕过切换选项卡)。

1
我建议使用UIToolbar。或者自己制作一个自定义的UIView并按照自己的喜好进行设计。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接