0

我正在尝试找到一种方法使 TabBar 的项目充当“UIbutton”。我想在按下这个项目时让它作为一个 ibaction 方法工作。

我尝试了几种实现方式:

   -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
   }

但是我无法使该方法起作用。

例如,伪造标签栏的项目功能并使其打开 UIActionSheet 的最佳解决方案是什么?

4

4 回答 4

1

尝试在 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
  }
}

(这是一篇旧帖子,但我有同样的问题。希望这可以为其他人省去同样的麻烦。)

于 2013-03-12T03:58:23.477 回答
0

看一下这个!这些人创建了一个带有 uibutton 的 tabBar!http://idevrecipes.com/2010/12/16/raised-center-tab-bar-button/

完整源代码: https ://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar

我前段时间尝试了代码,它对我有用。

于 2012-08-14T16:08:01.743 回答
0

您可以尝试tabBarController shouldSelectViewController委托方法。覆盖这个。在要从中显示 ActionSheet 的选项卡上返回 NO,而是在此方法中实例化 ActionSheet。

您将需要有一个占位符 UIViewController 来代替此选项卡。

如上所述,这违反了 Apple HIG,并且可能是您的应用被拒绝的原因。

于 2012-08-14T15:56:14.357 回答
-1

Call your action method in the viewDidLoad method of the view of the tab bar item selected.

于 2012-08-14T15:52:11.303 回答