2015-09-01 67 views
0
availableButton.frame = CGRectMake(0, screenHeight - tabBarHeight!, CGFloat(screenWidth/5.0) * 2.0, tabBarHeight!) 
    availableButton.backgroundColor = FlatGreen() 
    availableButton.setTitle("Turn On", forState: UIControlState.Normal) 
    availableButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal) 
    availableButton.titleLabel?.font = UIFont(name: "Roboto-Bold", size: 20.0) 
    self.view.addSubview(availableButton) 

这是我添加到我的TabBarViewController中的按钮。如何隐藏我添加到UITabBar的自定义按钮?

当我隐藏我的标签栏:

tabBarController?.tabBar.hidden = true 

我想这个按钮被隐藏。

我的按钮是2个标签栏项目的宽度。

enter image description here

+0

您要添加该按钮在self.view,所以隐藏tabbar不会隐藏主视图上的按钮 –

+0

@Racheel,我可以在哪里添加它然后? – TIMEX

+0

给我们展示了一些设计,你想要达到什么样的效果,同时你可以制作这个按钮的实例并隐藏它,当你隐藏你的标签栏 –

回答

1

let tabBarContext = UnsafeMutablePointer<()>()

self.tabBar.addObserver(self, forKeyPath: "hidden", options: NSKeyValueObservingOptions.New, context:tabBarContext)

override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) { 
    if context == tabBarContext && keyPath == "hidden"{ 
     let newChange = change[NSKeyValueChangeNewKey] as! Int 
     self.availableButton.hidden = (newChange == 1) ? true :false 
    } 
} 
3

您已经添加该按钮,您的看法,也许这是非常糟糕的工作方式。

self.view.addSubview(availableButton) 

因为tabbar在它后面,所以它显示。 无论这个广告通过使用tabBarItem的TabBar或隐藏此按钮手动

availableButton.hidden = YES; 

您的问题将是solved.Thank你

+0

这个。另外,如果你想在几个地方隐藏'tabBar',在你的控制器上写一个新的方法来完成这个工作,只需调用这个方法,也许用一个参数(隐藏/显示)。这将防止您忘记隐藏按钮。 –

+0

是否可以将按钮添加到TabBar而不是self.view? – TIMEX

+0

是的,你可以使用tabBarItem而不是uibutton它的工作移动到任何其他ViewController – baydi

相关问题