【发布时间】:2016-01-22 13:34:08
【问题描述】:
我有 2 个 UIButtons 放在我的 TabBarViewController 上,(也嵌入了导航控制器)。
在最后一个 ViewController 中(在导航控制器堆栈中),我必须隐藏标签栏,我已经成功实现了。
问题是,当我导航回parentViewController 时,UIButton 位于标签栏后面(请参见下面的 GIF 图片):
红色的记录按钮和红色的“保留”按钮是UIButton,而不是tabBarButtons
这就是我在tabBarViewController 中添加UIButtons 的方式:
self.button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[self.button1 addTarget:self action:@selector(recordButtonClick:) forControlEvents:UIControlEventTouchUpInside];
self.button1.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
self.button1.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[self.button1 setBackgroundImage:[UIImage imageNamed:@"bar_button_record"] forState:UIControlStateNormal];
heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0)
self.button1.center = self.tabBar.center;
else
{
CGPoint center = self.tabBar.center;
center.y = center.y - heightDifference/2.0 - 0;
self.button1.center = center;
}
[self.view addSubview:self.button1];
另一个红色的“Preserve”按钮也添加了与上面类似的代码。
现在在我的最后一个navigationViewController 中,我通过以下代码隐藏了tabBar:
#pragma mark - Overriden UIViewController methods, this function gets called automatically when viewController is loaded
- (BOOL)hidesBottomBarWhenPushed {
return YES;
}
上面的函数返回YES 隐藏了tabBar,但它使按钮在tabBar 后面转到以前的视图控制器。
如果我把它改成NO,那么按钮就不会在tabBar后面,而且tabBar也不会隐藏在最后一个viewController上。
请建议一种方法,以其他方式隐藏 tabBar,或将 UIButtons 放在前面。
谢谢!
【问题讨论】:
标签: ios objective-c uibutton uitabbarcontroller uitabbar