2016-03-21 56 views
0

我目前實現了一個UIImagePickerController,用於在我的消息應用程序中發送圖像。現在我想用同樣的邏輯,但設置自定義背景...圖像採集器控制器自定義背景

我使用PresentPhotoLibrary(self, YES);讓我選擇器

#pragma mark - UIImagePickerControllerDelegate 

//------------------------------------------------------------------------------------------------------------------------------------------------- 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
//------------------------------------------------------------------------------------------------------------------------------------------------- 
{ 
    NSURL *video = info[UIImagePickerControllerMediaURL]; 
    UIImage *picture = info[UIImagePickerControllerEditedImage]; 
    //--------------------------------------------------------------------------------------------------------------------------------------------- 
    [self messageSend:nil Video:video Picture:picture Audio:nil]; 
    //--------------------------------------------------------------------------------------------------------------------------------------------- 
    [picker dismissViewControllerAnimated:YES completion:nil]; 
} 

我用來發送彩信...我是否需要使用相同的圖像選擇器來設置背景?或者我需要兩個獨立的圖像選取器控制器來執行此操作?

+0

您可以使用相同的選取器,您需要更改傳遞給此選取器的數據。 –

+1

@TejaNandamuri我不同意。沒有理由重用UIImagePickerController,並且當你這樣做時會導致問題。 – matt

+0

你覺得它有什麼不同?你嘗試過它失敗了嗎?發生了什麼?有什麼問題? – matt

回答

2

的問題真可謂是:由於我要提出的UIImagePickerController超過一個目的,我怎麼能區分目的的UIImagePickerController提出的?

最簡單的方法是針對不同的目的有不同的代表。當你展示UIImagePickerController時,你設置了一個不同的delegate對象。該對象知道如何響應您正在使用UIPickerController的其中一個特定的目的。

另一種可能性是使用相同的delegate,但在那個對象中,拋出某種開關。例如,你可以有一個Bool屬性。將其設置爲true用於一個目的,並將其設置爲false用於其他目的。然後呈現選取器。委託代碼諮詢相同的布爾屬性,現在知道該怎麼做。

+0

那麼我會怎麼去做呢?我明白你是什麼說,使功能多態,什麼不是,只是不執行。 –

+0

我不會寫鱈魚對你來說,如果這就是你要求的。我已經說過我要說什麼了。在我看來,我已經完全回答了這個問題。 – matt

+0

我在問你代表你的意思。你是在談論傳遞另一個參數給我的函數,所以當它的真實性做一件事,當它的假,做另一個? –