Swift 使用选项卡栏显示viewcontroller
我在AppDelegate中用4个视图控制器(使用.xib)以编程方式创建了UITabBarController。当用户点击ViewController(VC-A)上的某个按钮时,它会显示另一个VC(VC-B)和覆盖的选项卡栏。所以我想在VC-B的按钮上有一个选项卡 我尝试将VC-B添加为tabbarcontroller的子级。我试着在vc-A和vc-A.TabBarController上同时使用.present(vc)和.show(vc) 在AppDelegate中创建控制器:Swift 使用选项卡栏显示viewcontroller,swift,uitabbarcontroller,tabbar,Swift,Uitabbarcontroller,Tabbar,我在AppDelegate中用4个视图控制器(使用.xib)以编程方式创建了UITabBarController。当用户点击ViewController(VC-A)上的某个按钮时,它会显示另一个VC(VC-B)和覆盖的选项卡栏。所以我想在VC-B的按钮上有一个选项卡 我尝试将VC-B添加为tabbarcontroller的子级。我试着在vc-A和vc-A.TabBarController上同时使用.present(vc)和.show(vc) 在AppDelegate中创建控制器: let co
let controllers = [tabViewController1,tabViewController2,tabViewController3,tabViewController4]
tabBarController.viewControllers = controllers
window?.rootViewController = tabBarController
在VC-A中呈现
self.tabBarController?.present(controller, animated: false, completion: nil)
右键单击并从序列图像板中的tabbar控制器拖动到VC-B。这应该会在VC-a和VC-B的底部创建一个选项卡,以便在不需要执行任何后端代码的情况下来回移动,除非您想设置动画右键单击并从序列图像板中的tabbar控制器拖动到VC-B。这应该会在VC-a的底部创建一个选项卡VC-B不需要实现任何后端代码就可以来回运行,除非您想制作动画。解决方案是将每个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(控制器,动画:
(对)
要使用tabbar显示VC,解决方案是将每个VC嵌入navigationController,然后添加到tabbar控制器
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(控制器,动画:
(对)
要使用tabbar显示VC
我将按下图片底部的红色登录按钮并尝试登录。
登录按钮=>”로그인"
之后,登录
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)
如果登录过程中没有出现错误,则在登录完成时将调用上述代码以显示屏幕
如果流程按照上述代码进行,则会出现此屏幕
显示的屏幕不是全屏,底部的选项卡栏不见了。我想要的屏幕是下面的屏幕
如何在显示屏幕时显示选项卡栏?
我将按下图片底部的红色登录按钮并尝试登录。
登录按钮=>”로그인"
之后,登录
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)
如果登录过程中没有出现错误,则在登录完成时将调用上述代码以显示屏幕
如果流程按照上述代码进行,则会出现此屏幕
显示的屏幕不是全屏,底部的选项卡栏不见了。我想要的屏幕是下面的屏幕
如何在显示屏幕时显示选项卡栏?您对
present
的实际工作方式感到困惑。它实际上在当前VC上显示了一个VC。因此它覆盖了所有屏幕,您的选项卡栏将不可见。如果您想保留选项卡栏,请将选项卡栏控制器嵌入导航控制器中,然后使用推送Instead您对present
的实际工作方式感到困惑。它实际上是在当前VC之上呈现一个VC。因此它覆盖了所有屏幕,您的选项卡栏将不可见。如果您想保留选项卡栏,请将选项卡栏控制器嵌入navigationController中,并使用push
Instead也有同样的问题……但您需要在回答部分提问…我也有同样的问题…但你只是在回答部分提问。。。