带有选项卡的当前ViewController

时间:2019-05-02 19:11:47

标签: swift uitabbarcontroller tabbar

我使用4个视图控制器(使用.xib)在AppDelegate中以编程方式创建了UITabBarController。当用户点击ViewController(VC-A)上的某个按钮时,它将显示另一个VC(VC-B)和覆盖的标签栏。所以我想VC-B的按钮上有一个选项卡。

我试图将VC-B添加为tabbarcontroller的子代。我试图同时在.present(vc)和.show(vc)上:VC-A和VC-A.TabBarController

在AppDelegate中创建控制器:

 let controllers = [tabViewController1,tabViewController2,tabViewController3,tabViewController4]
 tabBarController.viewControllers = controllers
 window?.rootViewController = tabBarController

在VC-A中展示

self.tabBarController?.present(controller, animated: false, completion: nil)

3 个答案:

答案 0 :(得分:0)

右键单击并从情节提要中的选项卡控制器拖动到VC-B。除非您要设置动画,否则应该在VC-A和VC-B的底部创建一个选项卡以来回移动,而无需实现任何后端代码。

答案 1 :(得分:0)

解决方案是将每个VC嵌入navigationController中,然后添加到TabBarController中。

let vc1 = ViewController1()

let navController1 = UINavigationController(rootViewController: vc1)
navController.isNavigationBarHidden = true

let controllers = [navController1, navController2, navController3, navController4]
tabBarController.viewControllers = controllers 

window?.rootViewController = tabBarController

然后拨打电话

  

self.navigationController?.pushViewController(控制器,动画:   是的)

要使用标签栏播放VC

答案 2 :(得分:0)

enter image description here

我将按图片底部的红色登录按钮,然后尝试登录。 登录按钮=>“로그인”

然后,登录。

let moreVC = self.storyboard?.instantiateViewController(withIdentifier: "MoreViewController") as! MoreViewController

                moreVC.definesPresentationContext = true
                moreVC.modalPresentationStyle = .fullScreen
                let navController = UINavigationController(rootViewController: moreVC)

                self.present(navController, animated: true, completion: nil)

如果登录继续进行而没有错误,则完成登录后,将调用上述代码以显示屏幕。

如果流程按上述代码进行,则会出现此屏幕。

enter image description here

显示的屏幕不是全屏显示,并且底部的标签栏消失了。我想要的屏幕是下面的屏幕。

enter image description here

在显示屏幕时如何显示标签栏?