Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式在loginVC之后嵌入自定义选项卡栏控制器_Ios_Swift_Uitabbarcontroller - Fatal编程技术网

Ios 以编程方式在loginVC之后嵌入自定义选项卡栏控制器

Ios 以编程方式在loginVC之后嵌入自定义选项卡栏控制器,ios,swift,uitabbarcontroller,Ios,Swift,Uitabbarcontroller,我在没有故事板的情况下工作。 成功登录后,我想在ViewController中添加一个选项卡。 我创建了另一个名为tabBar controller的viewController,代码如下: class TabBarController: UITabBarController,UITabBarControllerDelegate { override func viewDidLoad() { super.viewDidLoad() self.delegate = self }

我在没有故事板的情况下工作。 成功登录后,我想在ViewController中添加一个选项卡。 我创建了另一个名为tabBar controller的viewController,代码如下:

class TabBarController: UITabBarController,UITabBarControllerDelegate {
override func viewDidLoad() {
    super.viewDidLoad()
    self.delegate = self
}

override func viewWillAppear(_ animated: Bool) {
    // Create Tab one
    let tabOne = Home()
    let tabOneBarItem = UITabBarItem(title: "Collection", image: #imageLiteral(resourceName: "matchTabIcon"), selectedImage: #imageLiteral(resourceName: "matchTabIconSelected"))
    tabOne.tabBarItem = tabOneBarItem
    // Create Tab two
    let tabTwo = ScoutingVC()
    let tabTwoBarItem2 = UITabBarItem(title: "Scouting", image: #imageLiteral(resourceName: "scouting"), selectedImage:#imageLiteral(resourceName: "scoutingSelected"))
    tabTwo.tabBarItem = tabTwoBarItem2
    self.viewControllers = [tabOne, tabTwo]
}
// UITabBarControllerDelegate method
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
    print("Selected \(viewController.title!)")
}
}

将此添加到我所有的风险投资中的正确方法是什么?

我试过了

self.vc.addSubView(tabBarController)
也可以在第一个VC(索引:0)中创建func(),但是选项卡栏不在那里,或者如果在那里,就不会在ViewController之间切换

func showTabBarController() {
    // Create Tab one
    let home = Home()
    let homeTabBarItem = UITabBarItem(title: "Collection", image: #imageLiteral(resourceName: "matchTabIcon"), selectedImage: #imageLiteral(resourceName: "matchTabIconSelected"))
    home.tabBarItem = homeTabBarItem
    let navHome = UINavigationController.init(rootViewController: home)
    // Create Tab two
    let scouting = ScoutingVC()
    let scoutingTabBarItem = UITabBarItem(title: "Scouting", image: #imageLiteral(resourceName: "scouting"), selectedImage: #imageLiteral(resourceName: "scoutingSelected"))
    scouting.tabBarItem = scoutingTabBarItem
    let navScouting = UINavigationController.init(rootViewController: scouting)
    //showTabBar
    tabBarCnt.viewControllers = [navHome, navScouting]
    self.view.addSubview(tabBarCnt.tabBar)
}

不要使用self.vc.addSubView(tabBarController)使用present(tabBarController(),动画:false,完成:nil)

而不要使用self.vc.addSubView(tabBarController)使用present(tabBarController(),动画:false,完成:nil)这是正确的答案。谢谢。好的,我发布了一个答案,你能接受它来结束这个问题吗