我希望这是非常直截了当的。正如您将从我的代码中看到的,我只是尝试获得一个UIAlertView按钮-按下弹出我回到根视图。
我没有收到任何编译错误或警告,当我运行该应用程序时,"RedeemCoupon“方法在IBAction中被调用,UIAlertView按其应有的方式弹出,但似乎根本没有调用"doneRedeeming”方法--我看不到NSLog的任何信息(是的,我知道我正在将buttonIndex设置为0--一旦我完成了这个工作,我就会修复它)。所以,基本上它不起作用。我点击“取消”按钮,警报就会消失。
顺便说一句,我不确定这是否重要,但是这个"RedeemCouponViewController“视图是堆栈上的第4个视图,它是通过在前一个视图中使用presentModalViewController添加的。
如果需要的话,我愿意接受其他方法--欢迎所有的建议!
提前感谢!
// RedeemCouponViewController.h
@interface RedeemCouponViewController : UIViewController <UIAlertViewDelegate> {// RedeemCouponViewController.m
- (IBAction) redeemYes: (UIButton*) sender {
CouponRedeem *redeem = [[CouponDatabase database] couponRedeem:_uniqueId];
[redeem release];
UIAlertView *doneRedeeming = [[UIAlertView alloc]initWithTitle:@"Coupon Redeemed!"
message:@"Thanks for shopping!"
delegate:self
cancelButtonTitle:@"Back to Main Menu"
otherButtonTitles:nil];
[doneRedeeming show];
[doneRedeeming release];
}
-(void) doneRedeeming: (UIAlertView *) doneRedeeming clickedButtonAtIndex: (NSInteger)buttonIndex {
if (buttonIndex = 0) {
NSLog(@"doneRedeemed method called");
[self.navigationController popToRootViewControllerAnimated:YES];
} else {
//do nothing
}
}发布于 2011-07-06 23:54:08
你想要
if (buttonIndex == 0) {代替
if (buttonIndex = 0) {前者检查平等,而后者负责分配。
另外,你想要
– alertView:clickedButtonAtIndex:你拥有的地方
- doneRedeeming:clickedButtonAtIndex:发布于 2011-07-06 23:54:32
您需要使用UIAlertViewDelegate 方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {}不
-(void) doneRedeeming: (UIAlertView *) doneRedeeming clickedButtonAtIndex: (NSInteger)buttonIndex {}发布于 2011-07-06 23:54:29
使用委托方法-alertView:didDismissWithButtonIndex:侦听取消按钮索引
https://stackoverflow.com/questions/6604342
复制相似问题