0

我有一个类,它在特定情况下UIButton显示了一个扩展。UIAlertview

@interface CellButton : UIButton {}

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!"
                                                      message:@"Play Again?"
                                                     delegate:self
                                            cancelButtonTitle:@"OK"
                                            otherButtonTitles:@"cancel", nil];
[alert show];

这很好用,但是当用户按下 ok 时我需要呈现一个视图控制器。但是你可能知道你不能呈现一个扩展名为UIButton.

所以我想知道我是否可以将下面的代码放在另一个视图控制器中并允许它与类中的一起UIAlert工作Cellbutton

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {     // and they clicked OK.
        GameController*myNewVC = [[GameController alloc] init];
        [self presentModalViewController:myNewVC animated:NO];
    }
}
4

3 回答 3

2

您不会在 UIButton 内执行此操作。

点击 UIButton 的目标应该是一个 UIViewController。之后,从视图控制器显示一个警报视图,视图控制器将成为 UIButton 的委托。从他们的一切都会正常工作。

于 2013-07-07T13:16:18.053 回答
0

只要您将警报视图委托设置为要处理演示文稿的视图控制器,这将起作用。

不过,我建议将所有功能移至视图控制器,即从同一个视图控制器呈现和处理警报视图,这可以从按钮的事件触发。我认为这使代码更具可读性,并且让按钮了解警报视图并没有什么意义

于 2013-07-07T13:16:03.310 回答
0

您可以声明一个全局变量(在 appDelegate - 以及如何在此处执行)然后;1 - 当用户单击按钮时设置变量 1 2 - 如果值为 1,则从其他视图控制器的操作中获取值,然后继续。

于 2013-07-07T15:17:06.807 回答