选择不同的选项卡时更改导航栏标题
Change Navigation Bar Title when different tab is selected
我对 xcode 还是很陌生。
我试图在 UITabBarController
中选择不同的选项卡时以编程方式更改导航标题。
我有一个 UItabBarController
创建标签栏,然后我有单独的 UIViewControllers
每个标签都有不同的内容 - 这部分工作正常,但我无法获得导航标题选择不同的选项卡时更改。
这是主选项卡控制器的代码。
// SUPER VIEW DID LOAD
override func viewDidLoad() {
super.viewDidLoad()
// NAVIGATION ITEM
navigationItem.title = "Job Information"
navigationController?.navigationBar.prefersLargeTitles = true
//setup our custom view controllers
let jobInfo = page_jobInfo()
let shots = page_shotList()
let attachments = page_attachments()
let notes = page_notes()
jobInfo.tabBarItem.title = "Information"
jobInfo.tabBarItem.image = UIImage(named: "jobInfo")
shots.tabBarItem.title = "Shots"
shots.tabBarItem.image = UIImage(named: "shots")
attachments.tabBarItem.title = "Attachments"
attachments.tabBarItem.image = UIImage(named: "attachments")
notes.tabBarItem.title = "Notes"
notes.tabBarItem.image = UIImage(named: "notes")
viewControllers = [jobInfo, shots, attachments, notes]
}
这是第二个选项卡按钮的代码 - 其他 2 个选项卡与此相同,因此不想使用大量代码向此提要发送垃圾邮件。
// SUPER VIEW DID LOAD
override func viewDidLoad() {
super.viewDidLoad()
// NAVIGATION ITEM
navigationItem.title = "Shot List"
navigationController?.navigationBar.prefersLargeTitles = true
}
由于您的视图控制器嵌入在 UITabBarController
中,您应该更改其(标签栏控制器的)导航项。此外,您应该在 viewWillAppear
方法而不是 viewDidLoad
中执行此操作,如下所示:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.title = "Bookmarks"
}
我对 xcode 还是很陌生。
我试图在 UITabBarController
中选择不同的选项卡时以编程方式更改导航标题。
我有一个 UItabBarController
创建标签栏,然后我有单独的 UIViewControllers
每个标签都有不同的内容 - 这部分工作正常,但我无法获得导航标题选择不同的选项卡时更改。
这是主选项卡控制器的代码。
// SUPER VIEW DID LOAD
override func viewDidLoad() {
super.viewDidLoad()
// NAVIGATION ITEM
navigationItem.title = "Job Information"
navigationController?.navigationBar.prefersLargeTitles = true
//setup our custom view controllers
let jobInfo = page_jobInfo()
let shots = page_shotList()
let attachments = page_attachments()
let notes = page_notes()
jobInfo.tabBarItem.title = "Information"
jobInfo.tabBarItem.image = UIImage(named: "jobInfo")
shots.tabBarItem.title = "Shots"
shots.tabBarItem.image = UIImage(named: "shots")
attachments.tabBarItem.title = "Attachments"
attachments.tabBarItem.image = UIImage(named: "attachments")
notes.tabBarItem.title = "Notes"
notes.tabBarItem.image = UIImage(named: "notes")
viewControllers = [jobInfo, shots, attachments, notes]
}
这是第二个选项卡按钮的代码 - 其他 2 个选项卡与此相同,因此不想使用大量代码向此提要发送垃圾邮件。
// SUPER VIEW DID LOAD
override func viewDidLoad() {
super.viewDidLoad()
// NAVIGATION ITEM
navigationItem.title = "Shot List"
navigationController?.navigationBar.prefersLargeTitles = true
}
由于您的视图控制器嵌入在 UITabBarController
中,您应该更改其(标签栏控制器的)导航项。此外,您应该在 viewWillAppear
方法而不是 viewDidLoad
中执行此操作,如下所示:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.title = "Bookmarks"
}