初始视图控制器标题更改为“返回”Swift
Posted
技术标签:
【中文标题】初始视图控制器标题更改为“返回”Swift【英文标题】:Initial View Controller Title Changes to "Back" Swift 【发布时间】:2018-01-25 15:33:02 【问题描述】:我不知道这里发生了什么。我在 UINavigationController 中有一个单一的视图应用程序。第一个页面标题一开始是一个东西,但是一旦您导航到 2 页之外,当您返回时,标题只是“返回”。
当您第一次打开应用程序时,页面 #1 的外观如下:
然后,当您单击第 2 页时(注意后退按钮显示“主页”:
此时,如果点击返回按钮,页面#1的标题仍然是“Main Page”。相反,如果您转到第 3 页,您会看到以下内容(我将第 2 页的标题设置为“ ”,因此后退按钮只是一个箭头):
当您按返回箭头返回到第 2 页时,返回按钮的标题已更改为“返回”:
当您按该返回按钮到第 1 页时,标题已更改为“返回”。发生的任何进一步导航都不会更改标题:
以下是任何与设置标题、导航栏、推送视图控制器相关的代码,以及我能想到的任何可能相关的代码:
AppDelegate:
UINavigationBar.appearance().isOpaque = false
UIBarButtonItem.appearance().tintColor = .black
UINavigationBar.appearance().tintColor = .black
页面 #1 视图控制器:
func launchContent(clerkship: String)
let listVC = storyboard?.instantiateViewController(withIdentifier: "ListViewController") as! ListTableViewController
listVC.currentClerkship = clerkship
navigationController?.pushViewController(listVC, animated: true)
override func viewDidLoad()
super.viewDidLoad()
self.title = "Main Page"
UINavigationBar.appearance().barTintColor = UIColor(red:0.93, green:0.93, blue:0.93, alpha:1.0)
第 2 页视图控制器:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
let contentVC = storyboard?.instantiateViewController(withIdentifier: "ContentViewController") as! ContentViewController
contentVC.currentContent = contentDict[currentClerkship]![indexPath.section][indexPath.row]
contentVC.currentClerkship = currentClerkship
navigationController?.pushViewController(contentVC, animated: true)
第 3 页视图控制器:
override func viewDidLoad()
super.viewDidLoad()
UINavigationBar.appearance().barTintColor = clerkshipToDisplay.darkColor
self.title = contentToDisplay.title
我也尝试过重新启动 Xcode。知道会发生什么吗?
【问题讨论】:
【参考方案1】:啊,我是个白痴。刚刚发现这个嵌入在我的第 3 页 viewDidLoad 方法中。它肯定是我几天前弄乱标题时留下的,我在检查原因时错过了它。如果其他人有这个问题,这是罪魁祸首:
self.navigationController?.navigationBar.backItem?.title = "Back"
【讨论】:
以上是关于初始视图控制器标题更改为“返回”Swift的主要内容,如果未能解决你的问题,请参考以下文章