Iphone 关于UIAlertView和UIAlertViewDelegate的简单问题
我希望这是非常直截了当的。正如您将从我的代码中看到的,我只是尝试按下UIAlertView按钮将我弹出回根视图 我没有收到任何编译错误或警告,当我运行应用程序时,iAction中会调用“ReceimendCouncil”方法,UIAlertView会弹出,但似乎根本没有调用“doneRedeeming”方法-我在NSLog中没有看到任何内容(是的,我知道我正在将buttonIndex设置为0-一旦我开始工作,我会修复它)。因此,基本上它不工作。我单击“取消”按钮,警报就会消失 顺便说一句,我不确定这是否重要,但这个“ReceiveCouponViewController”视图是堆栈上的第4个视图,它是在上一个视图中使用presentModalViewController添加的 如果需要的话,我愿意接受其他方法——欢迎所有建议 提前谢谢Iphone 关于UIAlertView和UIAlertViewDelegate的简单问题,iphone,delegates,uialertview,uiactionsheet,Iphone,Delegates,Uialertview,Uiactionsheet,我希望这是非常直截了当的。正如您将从我的代码中看到的,我只是尝试按下UIAlertView按钮将我弹出回根视图 我没有收到任何编译错误或警告,当我运行应用程序时,iAction中会调用“ReceimendCouncil”方法,UIAlertView会弹出,但似乎根本没有调用“doneRedeeming”方法-我在NSLog中没有看到任何内容(是的,我知道我正在将buttonIndex设置为0-一旦我开始工作,我会修复它)。因此,基本上它不工作。我单击“取消”按钮,警报就会消失 顺便说一句,我不确
// 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)
beif(buttonIndex==0)
?是的,你应该是对的-我只是想消除这一可能的错误,所以现在我只是手动设置它。如果没有调用你的委托方法,那么你的委托设置不正确。检查你设置委托的位置。好的,我只做了一件事,包括“”在头文件中。还有什么我应该做的吗?尝试了您的更改(事实上,我最初是这样做的,但它不起作用:-(是的,谢谢-我知道它不正确,但我现在只是想确定语句是否正确,以防“取消”不是“0”出于某些原因。不过,感谢您的提示!作为旁注,将比较写为(0==buttonIndex)
通常更安全,这样,如果您不小心进行了赋值而不是比较,并且避免了潜在的逻辑错误,程序将不会编译。
-(void) doneRedeeming: (UIAlertView *) doneRedeeming clickedButtonAtIndex: (NSInteger)buttonIndex {}
if (buttonIndex = 0) {
if (0)