我无法使用 Swift 更改选项卡栏控制器 8 项(在“更多”按钮之后)的文本
I can't change the text of tab bar controller 8 items (after More button) using Swift
我添加了一个8项的标签栏控制器,但是系统为我添加了'more'按钮。
问题是我无法更改标签栏项目 5 和 'more' 的标题。
这是错误消息。我已确认我有 8 件商品。
代码:
tabBarController?.tabBar.items![5].title = "ok"
错误
Thread 1: Exception: "*** __boundsFail: index 5 beyond bounds [0 .. 4]"
考虑以下代码:
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
configureViewControllers()
}
private func configureViewControllers() {
let colors: [UIColor] = [.systemRed, .systemBlue, .systemGray, .systemTeal, .systemPink]
var vcs = [UIViewController]()
for i in 0...6 {
let vc = UIViewController()
vc.view.backgroundColor = colors.randomElement()!
vc.tabBarItem.title = "VC \(i)"
vcs.append(vc)
}
viewControllers = vcs
}
}
因此您必须通过 vc.tabBarItem.title = "your title"
设置视图控制器的标题,或者您甚至可以在视图控制器内部 viewDidLoad()
使用 tabBarItem.title = "..."
设置它们。
进一步阅读:https://developer.apple.com/documentation/uikit/uitabbarcontroller
我添加了一个8项的标签栏控制器,但是系统为我添加了'more'按钮。 问题是我无法更改标签栏项目 5 和 'more' 的标题。 这是错误消息。我已确认我有 8 件商品。
代码:
tabBarController?.tabBar.items![5].title = "ok"
错误
Thread 1: Exception: "*** __boundsFail: index 5 beyond bounds [0 .. 4]"
考虑以下代码:
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
configureViewControllers()
}
private func configureViewControllers() {
let colors: [UIColor] = [.systemRed, .systemBlue, .systemGray, .systemTeal, .systemPink]
var vcs = [UIViewController]()
for i in 0...6 {
let vc = UIViewController()
vc.view.backgroundColor = colors.randomElement()!
vc.tabBarItem.title = "VC \(i)"
vcs.append(vc)
}
viewControllers = vcs
}
}
因此您必须通过 vc.tabBarItem.title = "your title"
设置视图控制器的标题,或者您甚至可以在视图控制器内部 viewDidLoad()
使用 tabBarItem.title = "..."
设置它们。
进一步阅读:https://developer.apple.com/documentation/uikit/uitabbarcontroller