如何从自定义UITabBar启动模态视图



我已经从这个GitHub位置构建了凸起的中心UITabBar。

我现在的挑战是,我不知道如何创建一个模态视图,将出现当按钮被按下。

有没有人使用过idev-recipes RaisedCenterTabBar与运气?你是如何实现出现在那里的模态表的?

或者,是否有一个不同的gitHub项目,有一个工作自定义选项卡栏与模态表?

谢谢!

这是我的解决方案,这是迄今为止我发现的最干净的方法…我真的希望它有帮助,我花了几个小时研究最好的方法。

我设置了一个"UITabBarController"委托,它直接连接到我在故事板上构建的选项卡界面。

**不要忘记在头文件中包含"tabBarController"委托

**注意这个回调方法不是"didSelectViewController",而是"shouldSelectViewController"。这个方法在选项卡被选中之前处理请求,这正是你想要的,所以你可以在请求发生之前停止它。这样你就不需要保存当前索引,传递它等等。

然后我只是检查什么选项卡将被选中(基于视图控制器的标题。

**也:这是我的代码,修改它需要为您的代码。但原则应该保留。我的"performSegueWithIdentifier"实际上是一个手动segue连接到我的选项卡控制器它在模态中打开。这段代码对我来说工作得很好。

 -(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
     if([[viewController title] isEqualToString:@"tellvc"])
     {
         [self performSegueWithIdentifier:@"shareModelViewController" sender:Nil];
         return NO;
     }
     else
     {
         return YES;
     }
 }

我正在做的一个程序中也有类似的东西,我很乐意向您展示我是如何做到的。我在标签栏中有几个视图控制器。我在任何VC中创建我的Plus按钮,我决定将在ViewDidLoad中首先出现在屏幕上。

    // Create a plus button that appears on the tabBar
UIImage *plusButton = [UIImage imageNamed:@"plusbutton.png"];
UIView *tabBarView = [[self tabBarController] view];
addButton = [UIButton buttonWithType:UIButtonTypeCustom];
[addButton setFrame:CGRectMake(127.0, 432.0, [plusButton size].width, [plusButton size].height)];
[addButton setBackgroundImage:plusButton forState:UIControlStateNormal];
[tabBarView addSubview:addButton];
[addButton addTarget:self action:@selector(scalePicker:) forControlEvents:UIControlEventTouchUpInside];    

我使按钮成为tabBarController视图的子视图。后来在这个VC的实现中,我有一个叫做scalePicker的方法:它创建了我的其他VC的一个实例,并以模态方式呈现它。(注意:这是我在上面的代码中设置为加号按钮的目标的方法)

    -(void) scalePicker:(id)sender
{
    // create the view scalePicker, set it's title and place it on the top of the view hierarchy
sp = [[ScalePickerVC alloc] init];
[self presentModalViewController:pickerNavController animated:YES];
}

我希望这对你有帮助,好运!

最新更新