当我从iOS应用程序的开始屏幕推送一个新的tableViewController时(我按下“设置”屏幕),UINavigationController中的标题将被剪切,直到动画结束:
这是动画中期的NavigationBar,就在动画结束之前,它看起来像这样:
片刻之后,标题会正确更改为“设置”。这不是什么大不了的事,但是你可以想象它会让一个稍微喜欢OCD的程序员烦恼多少! :)
这是tableViewController中我设置标题的代码,没什么特别的:
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
self.title = @"Settings";
// Hide tabBar when pushed so you cannot switch from the Settings
self.hidesBottomBarWhenPushed = YES;
self.tableView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg.png"]];
}
return self;
}
答案 0 :(得分:1)
我的答案有点迟了,但我在iOS 5上追踪了这个问题。当你在UINavigationBar上使用UIAppearance代理时,你似乎需要明确设置字体大小,而不是使用0.0来让它它根据方向自动设置。
我能够通过继承UINavigationController并输入以下代码来解决这个问题:
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
// You should include a conditional here to check for iOS 5, so iOS 6 doesn't have to do any additional work
self.navigationBar.titleTextAttributes = @{
UITextAttributeFont:[UIFont boldSystemFontOfSize:UIInterfaceOrientationIsPortrait(self.interfaceOrientation) || IS_IPAD ? 20.0f : 16.0f],
UITextAttributeTextColor:[UIColor whiteColor],
UITextAttributeTextShadowColor:[UIColor colorWithWhite:0.0f alpha:0.5f],
UITextAttributeTextShadowOffset:[NSValue valueWithUIOffset:UIOffsetMake(0.0f, -1.0f)]
};
}
答案 1 :(得分:0)
尝试设置
self.navigationItem.title = self.title;
viewWillAppear方法中的
答案 2 :(得分:0)
尝试
- (void)viewWillAppear:(BOOL)animated {
self.title = @"Settings";
}