我试图在我的标签栏中添加一个新的标签栏项目,点击该项目时,与其连接的ViewController应该以全屏模式显示。
我已经将所需的VC作为根连接到了选项卡(为了使其显示在选项卡中)。
我尝试了以下代码,但是VC显示为选项卡视图控制器的正常行为。
如何使其改为全屏显示?
class tabBarViewController: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
}
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
let isModalView = viewController is dreamteamViewController
if isModalView {
// you can refactor this part of the code
let cameraController = UINavigationController(rootViewController: dreamteamViewController())
self.present(cameraController, animated: true, completion: nil)
return false
} else {
return true
}
}
答案 0 :(得分:0)
像这样更改viewDidLoad,以将委托回调设置为正确的实例:
覆盖func viewDidLoad(){ super.viewDidLoad() self.delegate =自我 }
在故事板上为所需的视图控制器定义和故事板标识符
更改您的shouldSelect方法,如下所示:
func tabBarController(_ tabBarController:UITabBarController,shouldSelect viewController:UIViewController)->布尔 { 让isModalView = viewController是DesiredViewController
if isModalView {
// you can refactor this part of the code
let mainStory = UIStoryboard(
name: "Main", bundle: nil
)
let desiredVC = mainStory.instantiateViewController(
withIdentifier:"YourIdentifier"
) as UIViewController
let navBar = UINavigationController.init(rootViewController: desiredVC)
self.present(navBar, animated: true, completion: nil)
return false
} else {
return true
}
}
我在github上发布了一个项目,该项目以模态形式显示了一个选项卡项。如果有任何不清楚的地方,请从https://github.com/Hbehboodi/Navigation-TabbarWithModalTabItem进行检查。