【发布时间】:2010-03-25 15:49:54
【问题描述】:
我有一个简单的应用程序,其中唯一的视图控制器有一个到 UITabBar 的出口。它还实现了 UITabBarDelegate 并设置为 UITabBar 的委托:
@interface TheMainViewController : UIViewController <UITabBarDelegate>
{
IBOutlet UITabBar *theTabBar;
}
我实现了以下方法,只要我的 4 个 UITabBarItems 中的任何一个被点击,就会调用该方法。我试着做一些非常简单的事情:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
tabBar.selectedItem = [tabBar.items objectAtIndex:0];
return;
}
理论上,它应该始终在我的第一个选项卡上保持选中状态,并且当我点击任何 UITabBarItem 时它可以完美运行(没有任何反应,第一个始终保持选中状态)。但是,当我触摸 UITabBarItem 并按住它时(没有离开我的手指),选择无论如何都会改变!调试中,一切都被正确调用了。
这就像更改 selectedItem 属性没有任何效果,因为用户仍然“向下”放置项目(手指放在它上面)。
什么是好的解决方法?我尝试重载 UITabBar 并弄乱 touchesBegan 和 touchesEnd 但他们甚至没有被调用。与 UITabBarItem 相同。
哦,请不要建议使用 UITabBarController,因为它对我的应用程序不够灵活。
真令人沮丧....谢谢!
【问题讨论】:
标签: iphone uitabbar selecteditem uitabbaritem touches