2012-01-26 54 views
0

使用presentModalViewController用的UIImagePickerController導致崩潰在iOS 5,我試圖讓該設備上的所有專輯,用「UIImagePickerControllerSourceTypeSavedPhotosAlbum」(上< 5版本,其運行良好)只獲得相機的圖像,所以當我的sourceType的更改爲「UIImagePickerControllerSourceTypePhotoLibrary」它崩潰,我感謝所有幫助,這裏是我的代碼:使用presentModalViewController用的UIImagePickerController導致崩潰在iOS 5

float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 
    if(version < 5) 
     imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    else       
     imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
     //imgPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 

    [self presentModalViewController:imgPicker animated:YES]; 
+0

當使用iOS 5時,它在此行上崩潰:[self presentModalViewController:imgPicker animated:YES]; – Kazmi

+0

什麼是崩潰消息/異常信息? –

+0

我有同樣的問題(iOS5,iPad,Landscape)。呈現UIImagePickerControllerSourceTypeCamera工作得很好,但UIImagePickerControllerSourceTypePhotoLibrary和UIImagePickerControllerSourceTypeSavedPhotosAlbum沒有。你有沒有找到解決方案? – cschuff

回答

1

從官方文檔:

要使用含有其默認控制圖像拾取器控制器,執行以下步驟:

  1. 驗證設備能夠從所希望的源拾取內容。這樣做調用isSourceTypeAvailable:類方法,從「UIImagePickerControllerSourceType」枚舉中提供一個常量。

  2. 通過調用availableMediaTypesForSourceType:class方法,檢查您正在使用的源類型的哪些媒體類型可用。這可讓您區分可用於視頻錄製的相機和僅可用於靜止圖像的相機。

  3. 通過設置mediaTypes屬性,通知圖像選取器控制器根據要提供的媒體類型(靜止圖像,動畫或二者)調整UI。

  4. 通過調用當前活動視圖控制器的presentViewController:animated:completion:方法呈現用戶界面,並將您配置的圖像選取器控制器作爲新視圖控制器傳遞。

    在iPad上,使用彈出窗口顯示用戶界面。這樣做僅在圖像選取器控制器的sourceType屬性設置爲UIImagePickerControllerSourceTypeCamera時有效。要使用popover控制器,請使用UIPopoverController類參考中的「呈現和取消彈出窗口」中介紹的方法。

  5. 當用戶點擊按鈕選擇新捕獲或保存的圖像或電影或取消操作時,請使用委託對象關閉圖像選取器。對於新捕捉的媒體,您的代表可以將其保存到設備上的相機膠捲上。對於先前保存的媒體,您的代理可以根據您的應用程序

也許4點引起煩惱的目的,然後使用該圖像數據。

+0

它說「EXC_BAD_ACCESS」,它工作正常,如果當我更改源鍵入以下內容,感謝您的回覆; imgPicker。sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; – Kazmi

+0

我甚至試過這行代碼,但仍然無法正常工作,不知道爲什麼:(::自我presentViewController:imgPicker動畫:是完成:^ {NSLog(@「Photo Albums Presentations」);}]; – Kazmi

+2

您正在測試這在一個iPad或iPhone上?因爲在iPad上,UIImagePickerController必須通過UIPopoverController – basvk

相關問題