所以我创建了一个自定义UINavigationItem类别,以便能够为我的导航栏制作自定义标题视图,但每次我推/弹一个视图时,它只是添加新标题而不删除旧标题导致标题只是杂乱无章的信件。这是相关的代码:
@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 :(得分:0)
你必须从超级视图中删除旧的uilabel,设置为nil它不会那样做。这就是你弄乱屏幕上字母的原因。我也不认为你正在接受递归,因为你正在打电话给我,但我可能错了。
您可以快速将标记分配给最新创建的视图。
[[self.view viewWithTag:YourCustomEnumTag] removeFromSuperView];
// create your view....
textView.tag=YourEnumCustomTag;