2015-07-07 3 views
0

Я новичок в объективе c и нуждаюсь в некоторой помощи. У меня есть только один контроллер представлений, который должен показывать, когда по умолчанию используется массив, называемый factbook. Однако я хотел бы изменить массив с помощью проверки достоверности. Так что, если пользователь хотел бы видеть спорт, он мог просто нажать на спорт в режиме предупреждения, и текущий контроллер просмотра изменит название темы на спорт, цвет фона в цветовой гамме, который я хотел бы использовать для спортивной темы и текст в массив фактов спорта. Всякая помощь приветствуется!Изменить атрибуты на контроллере просмотра при выборе предупреждения (цель c)

- (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

что 'changeThemeNotification'? –

+0

кнопка на контроллере представления, который, если щелкнуть, отображает предупреждение, чтобы изменить тему –

+0

, вы подклассифицировали 'NSButton' и добавили селектор' addButton: validationBlock'? –

ответ

0

Предполагая, что этот комментарий

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

является частью вы хотите исправить. Если вы обновляете метку, просто измените его текст

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

randomSportFactText должен возвращать NSString*.

Если вы устанавливаете вывод на новый объект метки, который не обновляет вид, он просто отключает выходную метку на метке в представлении.

Если вы хотите изменить только backgroundColor, вы можете сделать это:

self.funFactLabel.backgroundColor = [UIColor redColor]; 
+0

Ваше решение отлично работает в первый раз. К сожалению, я не знаю, как сделать то, что вы описали в своем последнем предложении. –

+0

Вы не хотите этого делать - поэтому ваш код не работает. Не перезагружайте розетки (если вы действительно не знаете, что делаете). Просто обновите ярлык, который есть, используя его свойства. –

+0

и как я могу использовать спортивный массив фактов более одного раза? На данный момент это похоже на то, что я добавил его в представление. –

Смежные вопросы