我希望這是非常簡單的。正如你通過我的代碼所看到的,我只是試圖獲得一個UIAlertView按鈕 - 按下將我彈回到根視圖。簡單的問題在UIAlertView和UIAlertViewDelegate
我沒有收到任何編譯錯誤或警告,當我運行應用程序時,在IBAction中調用了「RedeemCoupon」方法,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
}
}
是的,謝謝 - 我知道這是不正確的,但我只是想確保該聲明對於現在來說是正確的,以防萬一由於某些原因「取消」不是「0」。感謝您的提示,但! – truthsmiles
作爲一個側面說明,通過'(0 == buttonIndex)'這種方式編寫比較通常更安全,如果您意外地分配而不是比較,並且避免了潛在的邏輯錯誤,程序將無法編譯。 –