また、私はこれを使用し、私はタブバーコントローラの第五のタブでビューコントローラの上にポップアップを表示したいような問題、 に直面していました:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if(viewController == tabBarController.viewControllers?[4]){
let storyboard : UIStoryboard = UIStoryboard(name: "AfterLogin", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "MorePopUpVC")
vc.modalPresentationStyle = .popover
let popover = vc.popoverPresentationController
popover?.delegate = self
popover?.permittedArrowDirections = .down
popover?.sourceView = self.tabBar
popover?.sourceRect = ((self.orderedTabBarItemViews()).last?.frame)!
vc.preferredContentSize = CGSize(width: 120, height: 132)
present(vc, animated: true, completion:nil)
return false
}
return true
}
これは私が第五タブの動作を変更する方法です私はそれに役立つと思います
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
let storyboard : UIStoryboard = UIStoryboard(name: "YOUR STORYBOARD NAME", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "YOUR VIEW CONTROLLER IDENTIFIER")
if(viewController == tabBarController.viewControllers?[4]){
vc.type = "PARAMETER YOU WANT"
}
present(vc, animated: true, completion:nil)
return false
}
:、
あなたは次のようにそれを使用することができます。
現在、コントローラは「Interface Builder」によって初期化されています。コントローラを自分で初期化していくつかのパラメータを追加する場合は、インタフェースビルダーからではなくコードからコントローラを追加する方がよいでしょう。 –
それは意味がありますが、パラメータを追加する方法が必要です...私はビュー内のviewcontrollersをつかんで、タブバーコントローラの負荷を加え、そこにパラメータを追加したと思った...しかし、私は汚い感じ! –
'UITabbarController'のデリゲートを見てください。そこには関数[didSelectViewController](https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate/1621173-tabbarcontroller?language=objc)があります。インデックスに従ってパラメータを設定します。ただし、表示するタブインデックスを選択するたびに設定されます。 –