2017-07-13 8 views
0

シーケンスはtabBarController-> navigationController-> viewController-> viewControllerです 次のコードを2番目のviewControllerに書き込みました。 ユーザーが2番目のviewControllerに来ると、タブバーを非表示にしたいと思います。tabBar.isHiddenがviewWillAppearでリセットされない

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 
    self.tabBarController?.tabBar.isHidden = true 
} 

ユーザーが[キャンセル]ボタンをクリックすると、メインページに戻る必要があります。

@IBAction func cancelAction(_ sender: Any) { 
     // Depending on style of presentation (modal or push presentation), this view controller needs to be dismissed in two different ways. 
     self.navigationController?.popToRootViewController(animated: true) 
    } 

最初のviewControllerに戻った後、再びタブバーを表示したいと思います。

override func viewWillAppear(_ animated: Bool) { 
    self.tabBarController?.tabBar.isHidden = false 
} 

実際、タブは表示されません。そしてそのページは突然一瞬の間震える。理由を知らない。 Workflow

答えて

1

タブバーを設定するためのすべてのコードを削除して、XIBやストーリーボードでのセカンド・ビュー・コントローラは、このオプションを試してみてください。

enter image description here

+0

ありがとう!できます。しかし、なぜ私のコードが期待どおりに機能しないのですか? –

+0

あなたは忘れてしまったかもしれません:super.viewWillAppear(animated)。あなたがそれを忘れてしまった場合、追跡するのが非常に厄介な問題につながる可能性があります。 –

関連する問題