2016-08-13 37 views
0

下面是相關代碼的結構:的UIButton沒有禁止使用setUserInteractionEnabled:NO和setEnabled:NO來

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    if(!isResponding) { 

    ... 

    else { 

    ... 

    [respondButton setUserInteractionEnabled:NO]; 
    [respondButton setEnabled:NO]; 

    [_manager POST:queryStringss parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     [formData appendPartWithFileData:imageData name:@"file" fileName:usernameEncoded mimeType:@"image/jpeg"];} 
      success:^(AFHTTPRequestOperation *operation, id responseObject) { 

      ... 

      failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
       NSLog(@"Error: %@ ***** %@", operation.responseString, error); 

       ... 

      } 
     } 
    ]; 

    [respondButton setUserInteractionEnabled:YES]; 
    [respondButton setEnabled:YES]; 

    ... 

} 

我看,我不是重新啓用按鈕,不知道它,它永遠不會禁用。周圍的代碼運行。請幫忙,謝謝。

+0

嘗試在您對setEnabled的兩次調用中放入斷點:並在您的成功和失敗塊中放置斷點。 –

+0

確定現在做一秒 – ewizard

+0

我跑了它,它打破了第一個setEnabled:沒有 - 我真的不知道如何使用斷點 – ewizard

回答

0

你應該在代碼塊內部移動你的代碼,它應該可以工作。您的網絡請求成功後啓用

[respondButton setUserInteractionEnabled:NO]; 
    [respondButton setEnabled:NO]; 

    [_manager POST:queryStringss parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     [formData appendPartWithFileData:imageData name:@"file" fileName:usernameEncoded mimeType:@"image/jpeg"];} 
      success:^(AFHTTPRequestOperation *operation, id responseObject) { 

      ... 

      failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
       NSLog(@"Error: %@ ***** %@", operation.responseString, error); 

       ... 

      } 

      [respondButton setUserInteractionEnabled:YES]; 
      [respondButton setEnabled:YES]; 
     } 
    ]; 
0

開放用戶交互或失敗

[respondButton setUserInteractionEnabled:NO]; 
[respondButton setEnabled:NO]; 

[_manager POST:queryStringss parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileData:imageData name:@"file" fileName:usernameEncoded mimeType:@"image/jpeg"];} 
     success:^(AFHTTPRequestOperation *operation, id responseObject) { 

     ... 

     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
      [respondButton setUserInteractionEnabled:YES]; 
      [respondButton setEnabled:YES]; 

     } 
    } 
]; 
0

其他的答案是接近,但我還需要重新啓用在success塊太大的按鈕。

[respondButton setUserInteractionEnabled:NO]; 
[respondButton setEnabled:NO]; 

[_manager POST:queryStringss parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
[formData appendPartWithFileData:imageData name:@"file" fileName:usernameEncoded mimeType:@"image/jpeg"];} 
    success:^(AFHTTPRequestOperation *operation, id responseObject) { 

     [respondButton setUserInteractionEnabled:YES]; 
     [respondButton setEnabled:YES]; 
    } 
    failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

     [respondButton setUserInteractionEnabled:YES]; 
     [respondButton setEnabled:YES]; 

    } 
}];