複数のボタンを持つカスタム ナビゲーション バーを作成したカスタム ビュー コントローラーがあります。そのカスタム ビュー コントローラーを複数の子コントローラーの親として使用しました (複数のコントローラーで同じナビゲーション バーを使用するため)。いくつかのボタンクリック。問題は、そのボタンをクリックするたびにそのビューコントローラーのインスタンスが作成されることです。そして、同じコントローラーが表示されます。
これは、メニュー ボタン クリックのアクションです。
@objc func showMenu(){
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let menuVC = storyBoard.instantiateViewController(withIdentifier: "MenuVC") as! MenuVC
if menuVC.view.window ==nil {
UIView.transition(with: self.view, duration: 0.5, options: .curveEaseIn, animations: {
self.present(menuVC, animated: true, completion: nil)
})
} else {
// view controller is visible
}
}
これは戻るボタンのクリックに対するアクションです:
@objc func backBtnPressed(){
self.dismiss(animated:true,complition:nil)
}
viewController.view.window を試しましたが、ボタンを押すたびに baseViewController の新しいインスタンスが作成されるという問題があります。
このシナリオでコントローラーが既に提示されていることを知る方法。