ios - 导航栏标题更新太晚(Swift)

标签 ios swift uinavigationbar

在选择显示某些类别的 collectionViewController 的单元格后,我有一个 tableViewController 显示(都在 navigationViewController 内)。我想让导航栏显示所选类别的标题,但标题没有及时更新。

这意味着每当我返回并选择不同的类别时,它都会显示旧标题,即标题总是滞后于 View 之后?

这是我在 collectionViewController 中的代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "CategorySelected") {
        let vc = segue.destination as! SearchOrgTableViewController
        vc.category = selectedCategory
    }
}

在 TableViewController 中:

var category: CategoryModel?{
    didSet{
        guard let name = category?.name else{
            return
        }
        self.navigationItem.title = name
    }
}

知道如何解决这个问题吗?

我尝试直接在prepare函数中设置标题,结果相同,调用reloadInputViews()也没有成功。

最佳答案

试试这段代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "CategorySelected") {
DispatchQueue.main.async {
let vc = segue.destination as! SearchOrgTableViewController
    vc.category = selectedCategory
    vc.title = category.name } }
}

关于ios - 导航栏标题更新太晚(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51875691/

相关文章:

ios - 如何通过点击屏幕关闭键盘

ios - UINavigationController interactivePopGestureRecognizer 在 iOS7 中工作异常

ios - 如何更改导航栏按钮之间的距离

ios - 更改导航栏色调颜色 iOS 7。

UITextView AppStore 拒绝中的 HTML 字符串

php - 在 iOS 中加密 NSString(不是 NSData)-> 发送到 PHP 服务器-> 让 PHP 服务器解密?

swift - 删除 Firestore 集合中的所有文档

ios - 如何声明继承的内置协议(protocol),以便可以从另一个框架或应用程序导入它?

ios - 使用日期 Swift 3 对字典数组进行排序

ios - 找到 UISlider 指向的方向