i auch Thema wie das konfrontiert, in denen ich Pop über View-Controller auf dem fünften Register Tab-Leiste Controller angezeigt werden soll, i verwendet, um diese:
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
}
dies ist, wie ich Wirkung der fünften Registerkarte ändern ,
können Sie es mögen verwenden:
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
}
ich denke, es hilft.
Momentan werden Ihre Controller von 'Interface Builder' initialisiert. Wenn Sie den Controller selbst initialisieren und einige Parameter hinzufügen möchten, ist es besser, die Controller aus dem Code, nicht aus dem Interface Builder, hinzuzufügen. –
das macht Sinn, aber es muss eine Möglichkeit geben, einen Parameter hinzuzufügen ... ich dachte, die Viewcontroller in der Ansicht zu laden, laden des Tabbar-Controllers und fügen Sie den Parameter dort hinzu ... aber ich fühle, dass ist schmutzig! –
Schauen Sie sich den Delegierten von 'UITabbarController' an, es gibt eine Funktion [didSelectViewController] (https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate/1621173-tabbarcontroller?language=objc), die Sie verwenden können Setzen Sie den Parameter entsprechend dem Index. Es wird jedoch jedes Mal festgelegt, wenn Sie einen Tab-Index auswählen, der angezeigt werden soll. –