我的某个类的扩展名为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];
}
}
答案 0 :(得分:2)
你不是在UIButton中做的。
单击UIButton的目标应该是UIViewController。之后,从视图控制器显示警报视图,视图控制器将是UIButton的委托。从他们的一切都将工作正常。
答案 1 :(得分:0)
只要您将警报视图委托设置为要处理演示文稿的视图控制器,这将起作用。
我建议将所有功能移到视图控制器,即从同一视图控制器出现并处理警报视图,这可以从按钮的事件触发。我认为这使得代码更具可读性,并且按钮无法了解警报视图
答案 2 :(得分:0)
您可以声明一个全局变量(在appDelegate中 - 以及如何执行HERE); 1 - 用户单击按钮时设置变量1 2 - 从其他viewcontroller的动作中获取值 如果值为1则继续。