2013-05-07 57 views
1

我目前正在使用我的iphone應用程序。當我用UIViewController拍攝一張照片時,我正在處理它(一些旋轉,變換,不管),然後在拍攝這張照片後顯示轉換的結果。UIImagePickerController加載欄/使用後彈出

問題在於,在「使用」按鈕上登錄時,應用程序正在處理圖片幾秒鐘,但用戶不知道任何事情,並繼續單擊「使用」按鈕「因爲他認爲這不起作用。

所以我想顯示一個彈出窗口「加載...」或加載圖片,只是爲了讓用戶知道「使用」按鈕的工作。

但我的彈出只顯示了工作完成之後,而不是之前...

這裏是我的代碼。

- (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIAlertView *waitingFor = [[UIAlertView alloc] initWithTitle:@"Chargement" message:@"Votre photo est en cours de traitenment, veuillez patientez quelques secondes." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [waitingFor show]; 

    myImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    /*My transformations*/ 

    [picker dismissModalViewControllerAnimated:YES]; 
} 

回答

1

使用MBProgressHUD它很容易使用&顯示消息。從這裏下載MBProgressHUD.h & M級

https://github.com/cokecoffe/ios-demo/tree/master/MBProgressHUD

然後,只需在ypor項目中添加這兩個類&使用如下:

- (void)imagePickerController:(UIImagePickerController *) Picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
    hud.delegate = self; 
    hud.labelText = @"Loading\nPlease Wait"; 
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.05 * NSEC_PER_SEC); 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void) 
        { 
         myImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 
         [MBProgressHUD hideHUDForView:self.view animated:YES]; 
        }); 
} 

,然後檢查。你應該在你的.h類中導入這個#import "MBProgressHUD.h"也宣告MBProgressHUD *hud; &使屬性@property (nonatomic, retain) MBProgressHUD *hud;在.h類中&也在.m類中的@synthesize hud;

+0

遇到了「hud.delegate = self;」的問題線。我收到了一個錯誤,說「從不兼容的類型'BothView * const __strong''分配給'id 」。 BothView是我的UIViewController類。 – Tiffado 2013-05-07 12:42:17

+0

聲明在.h文件....你聲明你的代表.... – Vishal 2013-05-08 02:45:16

+0

在這裏,像這樣的.h文件@interface ViewController:UIViewController ..... – Vishal 2013-05-08 02:47:43