1

来自一个单独的IntroViewController,我试图展示一个嵌入在UINavigationController中的UIViewController,它也是UITabbarController中的三个选项之一。在导航控制器和TabbarController内呈现视图控制器

let tabVC = storyboard?.instantiateViewController(withIdentifier: "TabBarViewController") 
self.present(UINavigationController(rootViewController: tabVC!), animated: true, completion: nil) 

当我提出我的视图控制器上面的代码中,导航控制器是不完整的,缺少从所有视图控制器的物品栏(见图片)。

enter image description here

我一直在这几个小时,并且可以只拿到TabbarController显示,该UINavigationController的,但不能同时使用。 感谢您的帮助。非常感激!

更新:我应该澄清,只有当我尝试从另一个视图控制器呈现它时,问题才存在。当我将它用作初始视图控制器时,一切都很好。

+0

入住这也许会帮助他们初始化。 https://stackoverflow.com/questions/44122404/swift-tabbarcontroller-viewcontroller-navigationcontroller/44122801#44122801 –

回答

0

使用此代码在tabBar控制器类中初始化您的viewControllers。 我用不同的故事板的每一个的viewController和tabBarButton但你也可以从一个故事板只是初始化右视图控制器makeTabBarItemForViewController方法

private func loadViewControllers(animated: Bool){ 

    var viewControllers = [UIViewController]() 
    viewControllers.append(self.makeTabBarItemForViewController(storyboardIdentifier: "CurrentChannels", title: LocalizationUtil.localizedString(forKey: "On Air"), selectedImageName: Assets.tabBarIconOnAir.rawValue, imageName: Assets.tabBarIconOnAirUnselected.rawValue)) 
    self.viewControllers = viewControllers; 
    self.setViewControllers(viewControllers, animated: animated) 
} 


private func makeTabBarItemForViewController(storyboardIdentifier: String,title:String , selectedImageName:String , imageName:String)-> UIViewController{ 
    let storyboard = UIStoryboard(name: storyboardIdentifier, bundle: nil) 
    let vc:UIViewController? = storyboard.instantiateInitialViewController(); 
    let selectedImage = UIImage(named: imageName)?.withRenderingMode(.alwaysOriginal) 
    let notSelectedImage = UIImage(named:selectedImageName)?.withRenderingMode(.alwaysOriginal) 
    let item = UITabBarItem(title: title, image: selectedImage, selectedImage: notSelectedImage) 
    vc!.tabBarItem = item 

    if let navVC = vc as? UINavigationController{ 
     navVC.delegate = self 
    } 
    return vc! 
} 
+0

感谢您的帮助。这很棒!我最终修改了用户体验,以至于原来的主持人现在正在有条件地出现。 – robinyapockets

+0

这是为你工作吗? –

相关问题