我有一个 UITabBarController。使用界面生成器我添加了多个 View Controller 。这些 viewControllers 都是同一个类,但唯一改变的是参数。
我想扩展 UITabBarController,以便在初始化 View Controller 时添加此参数,但我不知道如何在 UITabBarController 扩展中执行此操作。在哪里做这个合适的地方???
最佳答案
我也遇到过这样的问题,我想在标签栏 Controller 的第五个标签中显示弹出 View Controller , 我用过这个:
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
}
我认为它有帮助。
关于ios - 从 UITabBarController 初始化 viewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44885514/