iOS:从标签栏调用操作表

时间:2014-09-06 19:02:17

标签: ios objective-c uitabbarcontroller uiactionsheet

我已经在Stackoverflow上查看了关于此主题的所有其他答案,但是没有进一步了解。我在Storyboard中设置了Tabbar控制器。我已经在Storyboard中定义了tabbar项目的图标,但是我通过代码在各自的视图控制器中设置了标题,因为我的应用程序提供了多语言支持。

现在我想要一个单一的tabbar按钮,它不会转到另一个视图但只是调用一个动作表。不管我在哪个tabbar上。所以我的问题是:

  1. 我在哪里添加此标签栏按钮?因为我只能在创建segue到新视图控制器之后定义所有其他按钮
  2. 我在哪里放置操作表的代码?!

1 个答案:

答案 0 :(得分:1)

我在tabbar上不是很了解,但是我会做以下事情: 假设您正在使用TabBarController视图或带有TabBar的中央视图。

在-viewDidLoad

NSMutableArray *tmp = [[NSMutableArray alloc] initWithArray:self.tabBarController.viewControllers];

UIViewController *sheet= [[UIViewContoller alloc] init];
sheet.title = @"Sheet";
sheet.tabBarItem.image = [UIImage....];

[tmp addObject:sheet];

[self.tabBarController setviewControllers:tmp];

self.tabBarController.delegate = self;

然后放置以下内容

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    if([viewController.Title isEqualToString:@"Sheet"])
    {
        //ActionSheet create code here
        retrun NO;
    }
    else
    {
        return YES;
    }
}