Iphone 关于UIAlertView和UIAlertViewDelegate的简单问题

Iphone 关于UIAlertView和UIAlertViewDelegate的简单问题,iphone,delegates,uialertview,uiactionsheet,Iphone,Delegates,Uialertview,Uiactionsheet,我希望这是非常直截了当的。正如您将从我的代码中看到的,我只是尝试按下UIAlertView按钮将我弹出回根视图 我没有收到任何编译错误或警告,当我运行应用程序时,iAction中会调用“ReceimendCouncil”方法,UIAlertView会弹出,但似乎根本没有调用“doneRedeeming”方法-我在NSLog中没有看到任何内容(是的,我知道我正在将buttonIndex设置为0-一旦我开始工作,我会修复它)。因此,基本上它不工作。我单击“取消”按钮,警报就会消失 顺便说一句,我不确

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

我没有收到任何编译错误或警告,当我运行应用程序时,iAction中会调用“ReceimendCouncil”方法,UIAlertView会弹出,但似乎根本没有调用“doneRedeeming”方法-我在NSLog中没有看到任何内容(是的,我知道我正在将buttonIndex设置为0-一旦我开始工作,我会修复它)。因此,基本上它不工作。我单击“取消”按钮,警报就会消失

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

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

提前谢谢

// RedeemCouponViewController.h

@interface RedeemCouponViewController : UIViewController <UIAlertViewDelegate> {
你想要什么

if (buttonIndex == 0) {
代替

if (buttonIndex = 0) {
前者检查相等性,而后者分配相等性

还有,你想要

– alertView:clickedButtonAtIndex:
你在哪里

- doneRedeeming:clickedButtonAtIndex:

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

您需要使用
UIAlertViewDelegate

不是


@彭宏的回答是正确的:你的问题是:

if (buttonIndex = 0) {
你说

我知道这不对,但我只是 我想确定这个声明是正确的 现在是真的

但是
buttonIndex=0
的计算结果为
0
,使其等效于

if (0)
无论buttonIndex的值是多少,该块中的代码将永远不会执行。如果确实希望无条件执行,请将If更改为
If(1)
,或者将If去掉


如果您在调试器中运行此代码,则很难发现这一点。您可能认为您知道代码在做什么,但如果您不观察代码运行,您就不知道代码在做什么。

尝试了以下方法:'-(void)alertView:(UIAlertView*)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{if(buttonIndex=0){NSLog(@“doneredebeed方法已调用”);[self.navigationController PoptorootViewController激活:是];}否则{//do nothing}仍不工作的应
if(buttonIndex=0)
be
if(buttonIndex==0)
?是的,你应该是对的-我只是想消除这一可能的错误,所以现在我只是手动设置它。如果没有调用你的委托方法,那么你的委托设置不正确。检查你设置委托的位置。好的,我只做了一件事,包括“”在头文件中。还有什么我应该做的吗?尝试了您的更改(事实上,我最初是这样做的,但它不起作用:-(是的,谢谢-我知道它不正确,但我现在只是想确定语句是否正确,以防“取消”不是“0”出于某些原因。不过,感谢您的提示!作为旁注,将比较写为
(0==buttonIndex)
通常更安全,这样,如果您不小心进行了赋值而不是比较,并且避免了潜在的逻辑错误,程序将不会编译。
-(void) doneRedeeming: (UIAlertView *) doneRedeeming clickedButtonAtIndex: (NSInteger)buttonIndex {}
if (buttonIndex = 0) {
if (0)