大家好,我的自定义导航栏有问题。
我需要创建一个自定义导航栏,并将其用于多个视图控制器中,因此我将其创建为UIViewController的类别,并使用以下代码来创建所需的自定义项。
- (void)setCustomLabel:(NSString *)labelText
{
UILabel *navigationLabel = [[UILabel alloc]initWithFrame:CGRectMake(60,10,40,40)];
[navigationLabel setBackgroundColor:[UIColor clearColor]];
navigationLabel.font = [UIFont fontWithName:@"Humanist 521 BT-Bold" size:15.0];
navigationLabel.font = [UIFont boldSystemFontOfSize:18.0];
navigationLabel.textColor = [UIColor whiteColor];
navigationLabel.text = labelText;
navigationLabel.shadowColor = [UIColor colorWithRed:241.0/255.0 green:241.0/255.0 blue:241.0/255.0 alpha:1.0];
navigationLabel.shadowOffset = CGSizeMake(0.0, -1.0);
[navigationLabel sizeToFit];
[self.navigationController.navigationBar addSubview:navigationLabel];
[navigationLabel release];
}
在第一个视图上,有2个按钮signIn和Register,当我单击signIn按钮时,它将带我进入SignIn View;而当我单击Register按钮时,它将带我进入Register视图。我创建了2个ViewController,并使用以下代码在两个视图中将NavigationBarLabel设置为Register和SignIn:
[self setCustomLabel:@"REGISTER"];
和
[self setCustomLabel:@"SIGN IN"];
这些视图的标题显示为
和
当我第一次运行该应用程序并单击“注册”或“登录”按钮时,它的外观确实如此,但是如果我单击两个按钮中的任何一个,则导航至“注册”或“登录”视图,然后我返回并单击第二个按钮,栏更改为
请帮帮我,我已经很长时间了,我在viewDidAppear中设置了导航栏,我也尝试将其设置为nil
[self setCustomLabel:nil];
在viewWillDisappear和viewDidDisappear中。我是iPhone开发的新手,请帮助我
这是因为要将标签添加到导航栏中。由于无论您要进入多少视图,它都是相同的导航栏,因此它只会不断向栏中添加新标签并将其留在此处。
从我的角度来看,您有两种方法可以解决此问题:
您可以一次创建一个单数标签,并始终将其保留在导航栏上,并仅在方法中设置其文本,以使其始终具有正确的文本,并在不希望其可见时将其设置为隐藏。
您可以执行相同的操作,但是tag
要在标签上添加一个,然后在创建新标签之前,可以遍历NavigationBar
的子视图并通过检查标签来删除旧标签。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句