3

我正在尝试使用 UINavigationBar 标题文本颜色作为向用户指示我的应用程序是否与外部附件连接的指示,例如红色表示断开连接,绿色表示连接。

更新 UINavigationBar 以具有正确的标题文本颜色没有问题,当连接状态发生变化时,通过使用 setTitleTextAttributes 方法然后调用 [self.navigationBar setNeedsDisplay]。但是,这种变化不会立即反映出来。

我还使用 [[UINavigationBar appearance] setTitleTextAttributes:... ] 以便将来创建的任何新 UINavigationBars 都将具有正确的值。如果我导航到新视图,导航栏标题是正确的颜色。

如何使用更新的标题颜色强制 UINavigationBar 立即重绘?

4

1 回答 1

2

我想我刚刚遇到了同样的问题。这是解决此问题的更简单方法。假设这UINavigationBar是标准UINavigationController栏,您只需要重新分配正在显示的文本。那是你的控制器的title财产。诀窍是,您需要更改其值才能使其正常工作。

self.navigationController.navigationBar.titleTextAttributes = @{...}

self.title = nil;
self.title = @"##Actual Title##";
于 2013-03-19T22:59:07.737 回答