UITabBarController 自定义按钮在移动到下一个时不隐藏 ViewController
UITabBarController Custom Button not hiding while moving to next ViewController
我在UITabBarViewController中添加了自定义中心按钮,代码如下...
self.centerButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.centerButton.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
self.centerButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[self.centerButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[self.centerButton setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0) {
self.centerButton.center = self.tabBar.center;
} else {
CGPoint center = self.tabBar.center;
center.y = center.y - heightDifference/2.0;
self.centerButton.center = center;
}
[self.centerButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.centerButton];
请查看附件截图以供参考,
现在,当我在移动到其他 viewcontroller 时试图隐藏它时,只有标签栏被隐藏,而不是带有以下代码的中心自定义按钮,
[self.tabBarController.tabBar setHidden:YES];
也试过这样隐藏中心自定义按钮,
WBTabBarController *objWBTab = [self.storyboard instantiateViewControllerWithIdentifier:ID_CNTRL_TABBAR];
[objWBTab setTabBarHidden:YES];
SetTabBarHidden 已在 WBTabBarController.m,
中定义如下
- (void)setTabBarHidden:(BOOL)tabBarHidden
{
self.centerButton.hidden = tabBarHidden;
self.tabBar.hidden = tabBarHidden;
}
仍然没有运气,有人可以帮助我吗?
正在尝试检查 隐藏底栏 以在故事板上打开您的 ViewController
或者您也可以以编程方式使用它
self.hidesBottomBarWhenPushed = true
let destinationVC = self.storyboard?.instantiateViewControllerWithIdentifier("StoryBoardID") as! yourVC
self.navigationController?.pushViewController(destinationVC, animated: true)
self.hidesBottomBarWhenPushed = false
这是因为您将按钮作为子视图添加到整个视图而不是 tabBar 的视图。
将 [self.view addSubview:self.centerButton];
行更改为
[self.tabBar addSubview:self.centerButton];
让我们尝试在视图消失时隐藏它
-(void) viewWillDisappear:(BOOL)animated{
[self setTabBarHidden:YES];
[super viewWillDisappear:animated];
}
并在视图出现时显示它
-(void) viewWillAppear:(BOOL)animated{
[self setTabBarHidden:NO];
[super viewWillAppear];
}
我在UITabBarViewController中添加了自定义中心按钮,代码如下...
self.centerButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.centerButton.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
self.centerButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[self.centerButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[self.centerButton setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0) {
self.centerButton.center = self.tabBar.center;
} else {
CGPoint center = self.tabBar.center;
center.y = center.y - heightDifference/2.0;
self.centerButton.center = center;
}
[self.centerButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.centerButton];
请查看附件截图以供参考,
现在,当我在移动到其他 viewcontroller 时试图隐藏它时,只有标签栏被隐藏,而不是带有以下代码的中心自定义按钮,
[self.tabBarController.tabBar setHidden:YES];
也试过这样隐藏中心自定义按钮,
WBTabBarController *objWBTab = [self.storyboard instantiateViewControllerWithIdentifier:ID_CNTRL_TABBAR];
[objWBTab setTabBarHidden:YES];
SetTabBarHidden 已在 WBTabBarController.m,
中定义如下- (void)setTabBarHidden:(BOOL)tabBarHidden
{
self.centerButton.hidden = tabBarHidden;
self.tabBar.hidden = tabBarHidden;
}
仍然没有运气,有人可以帮助我吗?
正在尝试检查 隐藏底栏 以在故事板上打开您的 ViewController
或者您也可以以编程方式使用它
self.hidesBottomBarWhenPushed = true
let destinationVC = self.storyboard?.instantiateViewControllerWithIdentifier("StoryBoardID") as! yourVC
self.navigationController?.pushViewController(destinationVC, animated: true)
self.hidesBottomBarWhenPushed = false
这是因为您将按钮作为子视图添加到整个视图而不是 tabBar 的视图。
将 [self.view addSubview:self.centerButton];
行更改为
[self.tabBar addSubview:self.centerButton];
让我们尝试在视图消失时隐藏它
-(void) viewWillDisappear:(BOOL)animated{
[self setTabBarHidden:YES];
[super viewWillDisappear:animated];
}
并在视图出现时显示它
-(void) viewWillAppear:(BOOL)animated{
[self setTabBarHidden:NO];
[super viewWillAppear];
}