tabBar
+ NavigationViewController
があります。タブバーには、セル(Say view1)のコレクションビューがあり、セルではプッシュシーグが別のビューに実装されています(Say view2).
view2では、navBar
が必要ですが、タブバーは不要です。
私は試した
self.tabBarController?.tabBar.hidden = true
、
view2ではうまくいきましたが、view1に戻ったとき by back buttonタブはまだ隠されていた(view1クラスを追加self.tabBarController?.tabBar.hidden = false
in viewDidLoad func)。
view1でタブバーを再表示するにはどうすればよいですか?
私はスウィフトで働いています。
viewDidload
で、UIViewController hidesBottomBarWhenPushed
をyesに設定します。
self.hidesBottomBarWhenPushed = YES;
このようにして、UINavigationController
がタブバーを非表示にします。
Prepareforsegueで使用する
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showRecipeDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
RecipeDetailViewController *destViewController = segue.destinationViewController;
destViewController.recipeName = [recipes objectAtIndex:indexPath.row];
// Hide bottom tab bar in the detail view
destViewController.hidesBottomBarWhenPushed = YES;
}}
=)
SwiftでのBruno Fernandesの答え:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "YourSegueIdentifier" {
let destinationController = segue.destinationViewController as! YourViewController
destinationController.hidesBottomBarWhenPushed = true
}
}
これは私のために働いた答えでした。 hidesBottomBarWhenPushed
メソッドにviewDidLoad
を入れても機能しませんでした。
ありがとうブルーノ!
viewWillAppear
またはviewDidAppear
を使用する必要があります。 viewDidLoad
は、view1が初めてロード(表示)するときに呼び出されます。 view1からview2に移動して戻ると、viewDidLoadは再び呼び出されません。したがって、viewWillAppearまたはviewDidAppearを次のように使用する必要があります
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.tabBar.hidden = false
}
このコードをview1コントローラーに配置します。 viewWillAppear
またはviewDidAppear
は、view1に戻るたびに呼び出されます
TabBarController Bottom Barを非表示にする場合:#Swift
YourViewController内:ViewDidLoad()メソッド内
self.tabBarController?.tabBar.isHidden = false