0
之前并不清楚以前的游戏

所以我创建了一个自定义的UINavigationItem类能够使自定义titleview的我的导航栏,但每次我推/弹出一个视图,它只是增加了新的标题没有摆脱旧的导致标题只是一堆字母。这里的相关代码:自定义导航栏titleview的将加载新的

@implementation UINavigationItem (CustomNavigationItem) 
-(UIView *)titleView 
{ 
    [self setTitleView:nil]; 
    UILabel *newTitleView   = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 220, 32)]; 
    newTitleView.center    = CGPointMake(160, 22); 
    newTitleView.backgroundColor = [UIColor clearColor]; 
    newTitleView.textColor   = [UIColor whiteColor]; 
    newTitleView.textAlignment  = UITextAlignmentCenter; 
    newTitleView.text    = self.title; 
    newTitleView.textAlignment  = UITextAlignmentCenter; 
    return newTitleView; 
} 

@end 
+0

任何返回后调用(因此也就是为什么它被称为“回归”),但你最大的问题是,如果该代码被执行,它将无限递归。 – CodaFi 2012-03-09 03:43:08

+0

对不起,返回后的声明是一个错字。是递归吗?还是我错过了一些明显的东西? – JoeCortopassi 2012-03-09 05:55:51

回答

0

你必须从它的超级视图中删除旧的uilabel,通过设置为零它不这样做。这就是为什么你搞乱了屏幕上的字母。我也不认为你正在获得递归,因为你正在调整二传手,但我可能是错的。

您可以快速的将标签分配给您最新创建的视图。不执行

[[self.view viewWithTag:YourCustomEnumTag] removeFromSuperView]; 
// create your view.... 
textView.tag=YourEnumCustomTag;