使用 swift 更改 UINavigationController 标题时延迟

Posted

技术标签:

【中文标题】使用 swift 更改 UINavigationController 标题时延迟【英文标题】:Delay when changing UINavigationController title with swift 【发布时间】:2015-06-29 02:14:51 【问题描述】:

好的,我尝试了不同的方法来更新 UINavigationBar 中的标题,但总是有延迟。

我有一个导航控制器,它是表视图的根视图控制器。我尝试了不同的方法来更改标题并尝试让 UINavigationBar 重绘,但有大约 10 秒的延迟。

//I have tried different ways to change the title:
self.title = str
//and
@IBOutlet var tableTitle: UINavigationItem!
self.tableTitle.title = str

//as well as different ways to convince it to redraw
self.view.window?.rootViewController?.setNeedsStatusBarAppearanceUpdate()
//and
self.tableTitle.awakeFromNib()

我忘记了这是从 dataTaskWithURL 完成的,所以需要从主线程调用它。

【问题讨论】:

【参考方案1】:

尝试使用dispatch_async,该函数在调度队列上提交一个异步执行块并立即返回,看看下面的代码:

dispatch_async(dispatch_get_main_queue(), 
        // Change your title here
)

希望对你有所帮助。

【讨论】:

以上是关于使用 swift 更改 UINavigationController 标题时延迟的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 更改 UIButton 的字体

使用 swift 3 更改解析推送通知

使用 Swift 更改占位符文本颜色

Swift - 使用纹理数组更改 SKSpriteNode 纹理

iOS - 通过 Swift 更改约束乘数 [重复]

使用swift更改动画块内的UIbutton