在警报选择上更改视图控制器上的属性(目标c)

时间:2015-07-07 17:34:48

标签: ios objective-c arrays uiviewcontroller

我对目标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];
    }];            
    //...
}

1 个答案:

答案 0 :(得分:0)

假设这个评论

  // not working 
  //      self.funFactLabel = [self.sportFactBook randomSportFact];

是您要修复的部分。如果要更新标签,只需更改其文本

即可
 self.funFactLabel.text = [self.sportFactBook randomSportFactText];

randomSportFactText应返回NSString*

如果将输出设置为新标签对象,则不会更新视图 - 它只是将插座与视图中的标签取消关联。

如果您只想更改backgroundColor,也可以这样做:

 self.funFactLabel.backgroundColor = [UIColor redColor];