2015-11-16 65 views
3

我從我的應用程序插入數據到服務器數據庫。提交按鈕上的 我正在調用inserdata web服務。 我的數據插入數據庫。但我有一個問題, 之前我得到第一個結果時,當我再次點擊提交按鈕,然後相同的記錄多次插入數據庫。避免在iOS中的多個Web服務調用

請幫助我該如何避免這種情況。 (也錯誤地我多次點擊提交按鈕,然後多次插入相同的記錄)。

當Web服務觸發第一次
+0

禁用按鈕,直到收到一個迴應? – Wain

+0

限制插入數據時提交按鈕點擊,然後得到的數據,如果可能的話,當記錄添加成功然後提交表單,提交按鈕位於出來,所以當用戶按下任何一個可以再次按下此按鈕 – VRAwesome

+0

提交按鈕,顯示活動指示器查看(*** loading overlay ***)。這會讓用戶知道某些處理正在進行,並且不會觸發任何其他操作 – PK20

回答

1

....集button.selected = yes和在功能檢查,如果按鈕isSelected那麼不執行操作。使用這個布爾值來區分兩個條件。

0

用戶按下提交鍵,顯示進步HUD或活動的指標視圖(裝載疊加)。這會讓用戶知道某些處理正在進行,並且不會觸發任何其他操作。

還設置同步屬性到您調用此WebService的對象。 (當你同步執行某個東西時,等待它完成後再繼續執行另一個任務,當你異步執行某個東西時,可以在完成之前繼續執行另一個任務。)

當你得到響應時,清除所有數據從您的窗體或您的應用程序。因爲如果數據被清除,則用戶不能在數據庫中插入相同的記錄。

所以,無需禁用提交按鈕

0

試試這個。

- (IBAction)doneCollectionSaveAction:(id)sender {     
    if([activity isAnimating]==YES){ 
       [ALToastView toastInView:[UIApplication sharedApplication].keyWindow withText:@"Please wait..."];   
      }else{     
      [self addToCollection]; 
      } 
    } 

or 


- (IBAction)doneCollectionSaveAction:(UIButton *)sender { 
     if (sender.selected==YES) { 
      //do nothing 
      [ALToastView toastInView:[UIApplication sharedApplication].keyWindow withText:@"Please wait..."]; 
     }else{ 
       //send data to server 
       self.buttonDoneOutlet.selected=YES; 
       [self addToCollection]; 
     } 
    } 
    //and self.buttonDoneOutlet.selected=NO; //failure network call 
相關問題