从UITableView我使用此代码将另一个带有另一个UITableView的视图控制器压入堆栈:
// allocate and create instance of categories view controller
TJKCategoriesViewController *categoriesViewController = [[TJKCategoriesViewController alloc] init];
// push it onto the top of the navigation controller's stack
[self.navigationController pushViewController:categoriesViewController animated:YES];
当我在TJKCategoriesViewContoller的viewDidLoad方法中时,我正在使用以下代码更改标题:
self.title = @"Categories";
这很好用。然而,“类别”标题出现黑色的颜色,我希望它是一个不同的颜色。我尝试过像tintColor这样的东西,但self.title没有这个属性。
有人有任何建议吗?
谢谢, 格伦
答案 0 :(得分:2)
您可以创建UILabel并将其设置为UINavigationItem的titleView。请参阅Apple doc:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationItem_Class/#//apple_ref/occ/instp/UINavigationItem/titleView
一些代码:
- (void)setMyTitle:(NSString *)title
{
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.navigationController.view.bounds.size.width - 100, 44)];
titleLabel.text = title;
titleLabel.font = [UIFont systemFontOfSize:16];
titleLabel.textColor = ...
...
self.navigationItem.titleView = titleLabel;
}
答案 1 :(得分:0)
您可以使用NavigationBar的tintColor
属性:
self.navigationController.navigationBar.tintColor = [UIColor blueColor];
如果要将tintColor
更改设为全局,可以使用NavigationBar外观代理。
[[UINavigationBar appearance] setTintColor: [UIColor blueColor]];
答案 2 :(得分:0)
将此添加到viewDidLoad方法:
NSArray *keys = [NSArray arrayWithObjects: NSForegroundColorAttributeName, NSFontAttributeName, nil];
NSArray *objs = [NSArray arrayWithObjects: [UIColor redColor], [UIFont fontWithName:@"HelveticaNeue-Bold" size:20.0f], nil];
self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjects:objs forKeys:keys];
您可以自定义字体和颜色