我已经从这个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];
}
我希望这对你有帮助,好运!