0

所以,我有这个可以被四个视图控制器激活的弹出框。在此弹出框内,我单击一个按钮,此按钮会更改一个 UILabel,它位于激活弹出框的视图控制器中。

但是,问题是:取决于哪个视图控制器激活了弹出框,文本是不同的。

我的问题:如何设置一个 if 子句来知道从哪个视图控制器激活了弹出框?

这是更改 UILabel 的代码,我必须在其中实现 if 子句:

- (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 方法,也许不是,我不知道。

请各位帮忙看看好吗?

谢谢!

4

1 回答 1

0

好吧,你有一个 " sender" 参数被发送到你的 " escolheu1:" 方法(当我们讨论这个主题时,你应该将它声明为 " (IBAction)" 而不是 " (void)")。

通过该 sender 参数,您可以确定哪个按钮(在四个视图控制器中的每一个中)向您发送了该消息。

一种方法是通过tag为情节提要中每个视图控制器中的按钮设置“”值,然后您可以轻松确定哪个按钮调用此方法,如下所示:

- (IBAction) escolheu1:(id)sender {
   UIButton * theButton = (UIButton *) sender;
   NSLog( @"which button has this tag? --> %d", theButton.tag );
   ....
   ....
   ....
}
于 2013-07-11T02:05:23.087 回答