私のプロジェクトにはUITabBarController
があります。そして、その1つにViewControllers
ボタンがあります。このボタンをクリックすると、新しいViewController
がモーダルで表示されます。
問題は、2番目のVC=が表示されているときにtabBarController
のtabBar
がまだ表示されていることです。最初のViewController
で非表示にしようとするとこのメソッドを使用したアクションopenFiltersList()
:
self.tabBarController?.tabBar.hidden = true
非表示になりますが、再表示しようとすると、2番目のVCを閉じたときに、このパラメーターをfalse
に設定しても機能せず、tabBar
は非表示のままになります。これが1番目と2番目のコードです。
最初(InvitesViewController
、tabBarControllerのビューコントローラの1つ):
func openFiltersList() {
var filtersView : UIViewController = self.storyboard?.instantiateViewControllerWithIdentifier("filtersViewController") as! FiltersViewController
filtersView.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
self.presentViewController(filtersView, animated: true) { () -> Void in
UIView.animateWithDuration(0.3, animations: { () -> Void in
filtersView.view.backgroundColor = UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 0.5)
})
}
self.tabBarController?.tabBar.hidden = true
}
2番目(FiltersViewController
、どこにも埋め込まれていない):
@IBAction func dismiss(sender: AnyObject) { // close button action
self.dismissViewControllerAnimated(true, completion: nil)
var destinationVC : UIViewController = self.storyboard?.instantiateViewControllerWithIdentifier("invitesViewController") as! InvitesViewController
destinationVC.tabBarController?.tabBar.hidden = false
}
インターフェースにストーリーボードを使用しています。
タブバーコントローラーから新しいビューコントローラーを提示する必要があります:
self.tabBarController?.presentViewController(filtersView, animated: true) { () -> Void in
UIView.animateWithDuration(0.3, animations: { () -> Void in
filtersView.view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
})
}