我创建了一个方法,根据值设置按钮的标题。
打开viewController时需要调用此方法,并且可能在控制器再次出现时刷新。
所以我创建了方法,并在viewDidLoad和viewDidApper中调用了该方法,但它似乎仅在我更改页面并返回视图控制器时才被调用。
为什么?
我的代码是
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self controlloRichieste];
......
}
-(void)viewDidAppear:(BOOL)animated{
[self controlloRichieste];
}
-(void)controlloRichieste{
//Numero richieste di contatto
NSString *numeroRichieste = @"1";
if([numeroRichieste isEqual:@"0"]){
[_labelRequestNumber setTitle:@"Nessuna" forState:UIControlStateNormal];
} else {
_labelRequestNumber.titleLabel.text = numeroRichieste;
_labelRequestNumber.tintColor = [UIColor redColor];
}
//Fine Numero richieste di contatto
}
答案 0 :(得分:0)
您也可以将该代码移至viewWillAppear
,以便每次出现时都会调用该代码。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self controlloRichieste];
}
我现在看到了问题,尝试相反的方式
-(void)controlloRichieste{
//Numero richieste di contatto
NSString *numeroRichieste = @"1";
if([numeroRichieste isEqual:@"0"]){
[_labelRequestNumber setTitle:@"Nessuna" forState:UIControlStateNormal];
} else {
_labelRequestNumber.tintColor = [UIColor redColor];
[[_labelRequestNumber titleLabel]setText:numeroRichieste];
}
//Fine Numero richieste di contatto
}
更改设置按钮颜色,然后更改其titleLabel
' s text
我为您创建了一个演示 PROJECT ,希望对您有所帮助!
答案 1 :(得分:0)
第一次打开视图时,会调用viewDidLoad并调用viewDidAppeare。
每次打开视图时,当您推送或显示其他视图控制器并返回到一个viewDidAppeare时,都会调用viewDidAppeare。 你应该致电:
[super viewDidAppear:animated];
只在加载视图时调用viewDidLoad,然后在取消分配视图时调用它,并且需要再次分配它。因此,当您推送或呈现其他视图控制器并返回到缅因州时,一个viewDidLoad不会被调用。