2015-09-01 103 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

相關問題