【发布时间】:2020-05-10 15:18:40
【问题描述】:
我正在尝试使用自定义的选项卡视图控制器,用户可以在其中按照他/她喜欢的方式添加/重新排列它们。在下面的代码中我只需要返回数组计数并显示数组项,我设法通过数组的数量来完成,但是当它作为单个数组代码使用时,它只显示一个视图控制器!
代码如下:
class ContainerController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let selectedViewControllers = [Home(),Index(),Favourite(),Library()]
let selectedViewControllersProperties = ["Home","Index","Favourite","Library"]
viewControllers = [createController(title: "\(selectedViewControllersProperties[0])".localized, imageName: "\(selectedViewControllersProperties[0])", vc: selectedViewControllers[0]),
createController(title: "\(selectedViewControllersProperties[1])", imageName: "\(selectedViewControllersProperties[1])", vc: selectedViewControllers[1]),
createController(title: "\(selectedViewControllersProperties[2])", imageName: "\(selectedViewControllersProperties[2])", vc: selectedViewControllers[2]),
createController(title: "\(selectedViewControllersProperties[3])", imageName: "\(selectedViewControllersProperties[3])", vc: selectedViewControllers[3]),]
}
// MARK: - Handlers
func createController(title: String, imageName: String, vc: UIViewController) -> UINavigationController{
let recentVC = UINavigationController(rootViewController: vc)
recentVC.tabBarItem.title = title
recentVC.tabBarItem.image = UIImage(named: imageName)
return recentVC
}
}
当尝试使用这个数组时,它只显示一个 viewController:
let tabCount = selectedViewControllersProperties.count - 1
for i in 0...tabCount {
viewControllers = [createController(title: "\(selectedViewControllersProperties[i])".localized, imageName: "\(selectedViewControllersProperties[i])", vc: selectedViewControllers[i])]
}
我在这里做错了什么,请帮助我解决它。
【问题讨论】:
标签: ios arrays uinavigationcontroller viewcontroller swift5