2013-07-11 3 views
0

Итак, у меня есть этот popover, который может быть активирован четырьмя viewcontrollers. Внутри этого popover я нажимаю кнопку, и эта кнопка меняет один UILabel, который находится в контроллере view, который активировал popover.Изменение UILabel с помощью кнопки

Но проблема в том, что в зависимости от того, какой элемент управления представлением является popover, текст отличается.

Мой вопрос: как я могу установить одно условие if, чтобы узнать, с какого контроллера просмотра активировал popover?

Вот код, который изменяет UILabel, где я должен осуществить, если условие:

- (void) escolheu1:(id)sender { 
    [delegate menuController:self 
     hasPressedSomething: 
      [NSString stringWithFormat:@"They are panels composed by odd numbers of layers, which are crossed with each other in order to obtain more strength."]]; 
} 

Я предполагаю, что я должен использовать метод isKindOfClass, может быть, нет, я не знаю.

Помогите, пожалуйста, ребята?

Спасибо!

ответ

0

Ну, у вас есть параметр «sender» отправляется в ваш метод «escolheu1:» (и в то время как мы на эту тему, вы должны объявить его как «(IBAction)» и не «(void)»).

И с этим параметром отправителя вы можете определить, какая кнопка (в каждом из четырех контроллеров представления) отправила вам это сообщение.

Один из способов сделать это с помощью установки «tag» значения для кнопок в каждом из контроллеров отображения в раскадровке, а затем вы можете легко определить, какую кнопку называется этот метод следующим образом:

- (IBAction) escolheu1:(id)sender { 
    UIButton * theButton = (UIButton *) sender; 
    NSLog(@"which button has this tag? --> %d", theButton.tag); 
    .... 
    .... 
    .... 
} 
+0

На самом деле это одна и та же кнопка для всех 4 регуляторов просмотра (кнопки находятся внутри popover, поэтому они одинаковы), поэтому я думаю, что тег не будет работать, верно? –

+0

вы также можете программно (через код) установить тег при появлении своего popover (например, выставить свою кнопку через «свойство @», а затем установить ее через «myPopover.button.tag = 2;» для view controller # 2). –

+0

Должен ли я создать делегат для установки тегов? (popover находится в другом классе). –

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