首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于UIAlertView和UIAlertViewDelegate的简单问题

关于UIAlertView和UIAlertViewDelegate的简单问题
EN

Stack Overflow用户
提问于 2011-07-06 23:49:38
回答 4查看 743关注 0票数 1

我希望这是非常直截了当的。正如您将从我的代码中看到的,我只是尝试获得一个UIAlertView按钮-按下弹出我回到根视图。

我没有收到任何编译错误或警告,当我运行该应用程序时,"RedeemCoupon“方法在IBAction中被调用,UIAlertView按其应有的方式弹出,但似乎根本没有调用"doneRedeeming”方法--我看不到NSLog的任何信息(是的,我知道我正在将buttonIndex设置为0--一旦我完成了这个工作,我就会修复它)。所以,基本上它不起作用。我点击“取消”按钮,警报就会消失。

顺便说一句,我不确定这是否重要,但是这个"RedeemCouponViewController“视图是堆栈上的第4个视图,它是通过在前一个视图中使用presentModalViewController添加的。

如果需要的话,我愿意接受其他方法--欢迎所有的建议!

提前感谢!

代码语言:javascript
复制
// RedeemCouponViewController.h

@interface RedeemCouponViewController : UIViewController <UIAlertViewDelegate> {
代码语言:javascript
复制
//  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
    }
  }
EN

回答 4

Stack Overflow用户

发布于 2011-07-06 23:54:08

你想要

代码语言:javascript
复制
if (buttonIndex == 0) {

代替

代码语言:javascript
复制
if (buttonIndex = 0) {

前者检查平等,而后者负责分配。

另外,你想要

代码语言:javascript
复制
– alertView:clickedButtonAtIndex:

你拥有的地方

代码语言:javascript
复制
- doneRedeeming:clickedButtonAtIndex:
票数 2
EN

Stack Overflow用户

发布于 2011-07-06 23:54:32

您需要使用UIAlertViewDelegate 方法

代码语言:javascript
复制
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {}

代码语言:javascript
复制
-(void) doneRedeeming: (UIAlertView *) doneRedeeming clickedButtonAtIndex: (NSInteger)buttonIndex {}
票数 1
EN

Stack Overflow用户

发布于 2011-07-06 23:54:29

使用委托方法-alertView:didDismissWithButtonIndex:侦听取消按钮索引

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6604342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档