我已经从这个GitHub location建立了凸起的中心UITabBar。
我现在的挑战是我无法弄清楚如何创建按下按钮时出现的模态视图。
有没有人用运气好的esv-recipes RaisedCenterTabBar?你是如何实现那里出现的模态表?
或者,是否有一个不同的gitHub项目,它有一个带有模态表的工作自定义标签栏?
谢谢!
答案 0 :(得分:5)
这是我的解决方案,这是我发现做到这一点的最干净的方式......我真的希望它有所帮助,我花了几个小时研究最好的方法。
我设置了一个“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;
}
}
答案 1 :(得分:2)
我在我正在制作的一个程序中有类似的东西,很高兴向您展示我是如何做到的。我在TabBar中有几个viewControllers。我在ViewDidLoad中首先在屏幕上显示的VC中创建了我的加号按钮。
// 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];
}
我希望这可以帮到你, 祝你好运!