需要帮助呈现视图控制器

时间:2013-07-07 13:09:58

标签: iphone ios objective-c uialertview viewcontroller

我的某个类的扩展名为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的视图控制器。

所以我想知道我是否可以将下面的代码放在另一个viewcontroller中,并允许它与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];
    }
}

3 个答案:

答案 0 :(得分:2)

你不是在UIButton中做的。

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

答案 1 :(得分:0)

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

我建议将所有功能移到视图控制器,即从同一视图控制器出现并处理警报视图,这可以从按钮的事件触发。我认为这使得代码更具可读性,并且按钮无法了解警报视图

答案 2 :(得分:0)

您可以声明一个全局变量(在appDelegate中 - 以及如何执行HERE); 1 - 用户单击按钮时设置变量1 2 - 从其他viewcontroller的动作中获取值 如果值为1则继续。