初始视图控制器标题更改为“返回”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的主要内容,如果未能解决你的问题,请参考以下文章

Xcode - 分段控制更改为默认值

无法更改为具有多个 segue 的另一个视图控制器。我该如何解决?

Swift 4 - 特定视图控制器状态栏样式不变

使用 ib action-Swift 删除尾随约束

如何在 Swift 中加载初始视图控制器?

以编程方式设置初始视图控制器 Swift