three20 TTTableViewController - > UINavigationBar颜色/样式问题

时间:2011-08-11 16:46:36

标签: iphone objective-c three20 uinavigationbar

我正在使用three20 TTTableViewController作为我当前的项目。要在视图之间切换,我使用UITabBar。我的一些观点有子视图 - 我不使用TTNavigator来切换这些视图,而是使用我自己的逻辑(简单的push / pop viewControllers)。

不知何故,我无法在这些子视图中设置UINavigationBar的颜色/样式(最初,它适用于由tabbarcontroller控制的主视图。)

我的设置如下:

AppDelegate我准备rootViewControllernavigationController

RootViewController *rootController = [[[RootViewController alloc] init] autorelease];
navigationController_ = [[UINavigationController alloc]    initWithRootViewController:rootController];
navigationController_.navigationBar.barStyle = UIBarStyleBlack;              
window_ = [[PSWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
window_.rootViewController = navigationController_; 

这里我将UIBarStyleBlack设置为我的默认样式。当我运行应用程序并查看不同的视图时,导航栏颜色/样式是正确的。

我的mainViews之一将用户转发到TTTableView

UIViewController* targetViewController = [[[NSClassFromString(targetVC) alloc] init] autorelease];             
if(targetViewController != nil) {   
     [[self retain] autorelease];           
     [self.navigationController popViewControllerAnimated:NO];   
     targetViewController.title = @"A Title";   
     [self.navigationController pushViewController:targetViewController animated:YES];   
}

上面的代码弹出当前的viewController并将targetViewController推送到堆栈上。这有效。但是,navigationBar颜色/样式现在是默认颜色/样式,而不是黑色,因为我在AppDelegate中设置了它。我已经检查了调试器中的对象地址,它与navigationController中的navigationBar + rootViewController相同。

当我在目标初始化函数中明确设置navigationBar颜色/样式时,将忽略这些设置。

此外,当我现在点击导航栏中的后退按钮时,mainViews中的bartyle /颜色也不正确(从黑色到默认)。

我有什么想法可以调试/解决这个问题吗?

0 个答案:

没有答案