gpt4 book ai didi

ios - 如何以编程方式使用 Swift 3 在所有 View Controller 中显示标签栏?

转载 作者:可可西里 更新时间:2023-11-01 01:18:35 25 4
gpt4 key购买 nike

我是 Swift 的新手。如何在不使用 Storyboard 的情况下以编程方式在 swift 3 中的所有 View Controller 中显示选项卡栏?

场景如下

1.我有 3 个带有标签栏的 View Controller (例如 view1、view2、view3)

2.当我点击 view2 中的一个按钮时,它导航到另一个 View Controller (比如说 view4)并且在 view4 中标签栏没有出现

我在 View Controller 中添加了标签栏(假设是 homeView)

这是我在 homeView 的 viewDidLoad() 中的代码

// Create Tab one
let homeviewController = view1()
let homeTabBarItem = UITabBarItem(title: nil, image: UIImage(named: "iconHome"), selectedImage: UIImage(named: "iconHome@3x"))
homeviewController.tabBarItem = homeTabBarItem
homeviewController.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0)

// Create Tab two
let categoryviewController = view2()
let categoryTabBarItem = UITabBarItem(title: nil, image: UIImage(named: "iconBrowse"), selectedImage: UIImage(named: "iconBrowse@3x"))
categoryviewController.tabBarItem = categoryTabBarItem
categoryviewController.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0)

// Create Tab three
let userprofviewController = view3()
let userTabBarItem = UITabBarItem(title: nil, image: UIImage(named: "iconProfile@3x"), selectedImage: UIImage(named: "iconProfile"))
userprofviewController.tabBarItem = userTabBarItem
userprofviewController.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0)


UITabBar.appearance().barTintColor = UIColor.black
UITabBar.appearance().itemPositioning = .fill
self.viewControllers = [homeviewController, categoryviewController, userprofviewController]

提前致谢

最佳答案

不是直接把viewControllers拿来self.viewControllers,而是像下面这样拿UINavigationController,

    // Create Tab one
let homeviewController = view1()
let homeTabBarItem = UITabBarItem(title: nil, image: UIImage(named: "iconHome"), selectedImage: UIImage(named: "iconHome@3x"))
homeviewController.tabBarItem = homeTabBarItem
homeviewController.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0)
let navHome = UINavigationController.init(rootViewController: homeviewController)

// Create Tab two
let categoryviewController = view2()
let categoryTabBarItem = UITabBarItem(title: nil, image: UIImage(named: "iconBrowse"), selectedImage: UIImage(named: "iconBrowse@3x"))
categoryviewController.tabBarItem = categoryTabBarItem
categoryviewController.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0)
let navCategory = UINavigationController.init(rootViewController: categoryviewController)

// Create Tab three
let userprofviewController = view3()
let userTabBarItem = UITabBarItem(title: nil, image: UIImage(named: "iconProfile@3x"), selectedImage: UIImage(named: "iconProfile"))
userprofviewController.tabBarItem = userTabBarItem
userprofviewController.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0)
let navUserPrfl = UINavigationController.init(rootViewController: userprofviewController)


UITabBar.appearance().barTintColor = UIColor.black
UITabBar.appearance().itemPositioning = .fill
self.viewControllers = [navHome, navCategory, navUserPrfl]

关于ios - 如何以编程方式使用 Swift 3 在所有 View Controller 中显示标签栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45079293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com