我对目标c不熟悉,需要一些帮助。我只有一个视图控制器,它应该显示何时默认为一个名为factbook的数组。但是,我想通过警报验证来更改阵列。因此,如果用户希望看到运动,他可以在警报视图上点击运动,当前视图控制器将主题名称更改为运动,背景颜色为颜色方案我喜欢运动主题和体育事实数组的文本。欢迎各方面的帮助!
- (void)viewDidLoad {
[super viewDidLoad];
// init for displaying facts
self.factBook = [[FactBook alloc] init];
self.colorWheel = [[ColorWheel alloc] init];
self.view.backgroundColor = [self.colorWheel randomColor];
self.funFactLabel.text = [self.factBook randomFact];
}
- (IBAction)showFunFact:(UIButton *)sender {
self.view.backgroundColor = [self.colorWheel randomColor];
funFactLabel.text = [self.factBook randomFact];
}
- (IBAction)changeTheme:(UIButton *)sender {
// to sport
[changeThemeNotification addButton:@"change to sport" validationBlock:^BOOL{
BOOL passedValidation = true;
return passedValidation;
} actionBlock:^{
// segue to sport
self.themeName.text = @"Sport";
self.sportFactBook = [[SportFactBook alloc] init];
self.sportColorWheel = [[SportColorWheel alloc] init];
// not working
// self.funFactLabel = [self.sportFactBook randomSportFact];
self.view.backgroundColor = [self.sportColorWheel randomColor];
}];
//...
}
答案 0 :(得分:0)
假设这个评论
// not working
// self.funFactLabel = [self.sportFactBook randomSportFact];
是您要修复的部分。如果要更新标签,只需更改其文本
即可 self.funFactLabel.text = [self.sportFactBook randomSportFactText];
randomSportFactText
应返回NSString*
。
如果将输出设置为新标签对象,则不会更新视图 - 它只是将插座与视图中的标签取消关联。
如果您只想更改backgroundColor
,也可以这样做:
self.funFactLabel.backgroundColor = [UIColor redColor];