我正在尝试找到一种方法使 TabBar 的项目充当“UIbutton”。我想在按下这个项目时让它作为一个 ibaction 方法工作。
我尝试了几种实现方式:
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
}
但是我无法使该方法起作用。
例如,伪造标签栏的项目功能并使其打开 UIActionSheet 的最佳解决方案是什么?
我正在尝试找到一种方法使 TabBar 的项目充当“UIbutton”。我想在按下这个项目时让它作为一个 ibaction 方法工作。
我尝试了几种实现方式:
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
}
但是我无法使该方法起作用。
例如,伪造标签栏的项目功能并使其打开 UIActionSheet 的最佳解决方案是什么?
尝试在 viewController 中使用 IBOutlet 和 UITabBarDelegate。
@interface MyViewController : UIViewController <UITabBarDelegate> {
IBOutlet UITabBar* tabBar;
}
@end
将 UITabBar 连接到 Interface Builder 中的 IBOutlet。
在 viewController 的 viewDidLoad 方法中将委托设置为“self”:
-(void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
tabBar.delegate = self;
}
并以某种方式设置委托方法来区分选项卡:
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
NSLog(item.title);
if([item.title isEqualToString:@"some label"]) {
// do something for this specific button
}
}
(这是一篇旧帖子,但我有同样的问题。希望这可以为其他人省去同样的麻烦。)
看一下这个!这些人创建了一个带有 uibutton 的 tabBar!http://idevrecipes.com/2010/12/16/raised-center-tab-bar-button/
完整源代码: https ://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar
我前段时间尝试了代码,它对我有用。
您可以尝试tabBarController shouldSelectViewController委托方法。覆盖这个。在要从中显示 ActionSheet 的选项卡上返回 NO,而是在此方法中实例化 ActionSheet。
您将需要有一个占位符 UIViewController 来代替此选项卡。
如上所述,这违反了 Apple HIG,并且可能是您的应用被拒绝的原因。
Call your action method in the viewDidLoad
method of the view of the tab bar item selected.