Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 需要提供视图控制器的帮助吗_Iphone_Ios_Objective C_Uialertview_Viewcontroller - Fatal编程技术网

Iphone 需要提供视图控制器的帮助吗

Iphone 需要提供视图控制器的帮助吗,iphone,ios,objective-c,uialertview,viewcontroller,Iphone,Ios,Objective C,Uialertview,Viewcontroller,我有一个扩展名为UIButton的类,它在特定情况下显示UIAlertview @interface CellButton : UIButton {} UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You Lose!" message:@"Play Again?"

我有一个扩展名为
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时,我需要显示一个视图控制器。但正如您可能知道的,您不能显示扩展名为
ui按钮的视图控制器

因此,我想知道是否可以将下面的代码放在另一个viewcontroller中,并允许它与
Cellbutton
类中的
UIAlert
一起工作

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

只要您已将警报视图委托设置为要处理演示文稿的视图控制器,此操作就会起作用


我建议将所有功能移动到视图控制器,即从同一视图控制器显示和处理警报视图,这可以通过按钮的事件触发。我认为这会使代码更具可读性,而且按钮了解警报视图并没有真正的意义

您不需要在UIButton中执行此操作


单击UIView按钮的目标应该是UIViewController。之后,显示来自视图控制器的警报视图,视图控制器将是UIButton的代理。从他们那里,一切都可以正常工作。

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

为按钮子类指定一个协议。您不应该在UIView子类中执行此类操作,而是在控制器中执行。