显示UITabBar的视图

时间:2014-02-17 17:55:58

标签: ios objective-c uitabbar presentviewcontroller

当我按下picker上的button时,我正在尝试创建UITabBar类型的内容。如果你看看tumblrs iphone app,你就会明白我的意思。我假设他们在用户当前所在的UIView上呈现viewcontroller。我该怎么做?

enter image description here

1 个答案:

答案 0 :(得分:3)

这个问题对我来说更像是一个自定义标签栏按钮问题,我认为tumblr所做的是在标签栏中间添加一个自定义按钮,并在点击该按钮时显示一个模态视图控制器。

我对我的测试项目做了一个非常快速的测试,有些数字是用于测试目的的硬编码,你可能需要稍微调整一下。

  1. 在标签栏中间添加自定义按钮。 (将以下代码添加到第一个视图控制器的viewWillAppear

    - (void)viewWillAppear:(BOOL)animated
    {
        UIImage *buttonImage = [UIImage imageNamed:@"classic-batman-logo.jpg"];
        UIImage *highlightImage = [UIImage imageNamed:@"classic-batman-logo.jpg"];
        UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.frame = CGRectMake(0.0, 0.0, 60, 50);
        [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
        [button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
    
        button.center = CGPointMake(self.tabBarController.tabBar.center.x , 30);
        [button addTarget:self action:@selector(centerButtonClicked) forControlEvents:UIControlEventTouchUpInside];
        [self.tabBarController.tabBar addSubview:button];
    }
    
  2. 然后只需在centerButtonClicked函数中显示目标视图控制器

    - (void)centerButtonClicked
    {
       UIViewController *vc = [[UIViewController alloc]init];
       vc.view.backgroundColor = [UIColor redColor];
       [self presentViewController:vc animated:YES completion:nil];
    }
    
  3. 这只是我做过的10分钟测试,应该是这样的:

    enter image description here

    也许有几件事你想要注意:

    • 在实施自己的代码时更改硬编码中心点

    • 甚至更好,您可以使用该中心按钮创建自定义tabBar,并为该按钮单击功能设置委托方法。因此,每当您从不同的视图控制器单击该按钮时,它将具有不同的行为。

    希望能给你一些关于如何实现这一目标的粗略想法。