2

问题:

每次我将 iPad 转为纵向模式并显示弹出框时,mainWindow 的导航栏的 TintColor 都会恢复为灰色。

细节:

  • 我从 Xcode 3.2.5 创建了应用程序并选择了基于拆分视图的应用程序。
  • 我使用 Interface builder 将 MainWindow.xib 的 navigationBar tintColor 更改为蓝色。
  • 然后,我最初以横向模式运行该应用程序,并且 tintColor 在模拟器上显示为蓝色值。
  • 当我将方向更改为纵向并单击按钮以显示 MainWindow 弹出框时,它的导航栏与弹出框的边框融合在一起,忽略了蓝色。
  • 但是当我将方向转回横向模式时,MainWindow 的 tintColor 会恢复到其原始颜色,即灰色。即使将代码写入 viewDidAppear 块,我也无法再编辑它的值。

这是一个错误吗?还是我需要配置更多设置才能使其正常工作?

提前致谢

——乔

4

3 回答 3

4

我从 hoodah 在 devforums.apple.com 上找到了解决方法,使用 Interface Builder 将导航栏的类更改为下面的类代码:

@interface iPadNavigationBar : UINavigationBar

@end

@implementation iPadNavigationBar

- (void)setTintColor:(UIColor *)tintColor
{
     // Bug workaround. 
     [super setTintColor:[self tintColor]];
}

@end

希望能帮助到你..

于 2010-12-06T02:41:01.807 回答
2

绝对是一个错误,我向 Apple 提交了开发人员支持请求,他们基本上说这是一个已知问题。

我已经发布了带有工作示例的源代码。 http://realprogrammersdontgarbagecollect.blogspot.com/2011/01/splitviewcontroller-with-navigationbar.html

于 2011-01-04T14:43:28.503 回答
0

我认为这是一个错误,我也遇到了这个问题。如果您有一个小测试用例,我建议您在 Apple 论坛上提出。

于 2010-12-05T21:28:34.840 回答