2016-03-21 13 views
0

Ich habe derzeit einen UIImagePickerController zum Senden von Bildern in meiner Messaging-App implementiert. Jetzt ist zu wollen, ich die gleiche Art von Logik zu verwenden, aber benutzerdefinierte Hintergründe zu setzen ...Bildauswahl Controller benutzerdefinierte Hintergründe

ich PresentPhotoLibrary(self, YES); bin mit meiner Picker

#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]; 
} 

der I-Bild zum Senden von Nachrichten verwenden zu bekommen ... muss ich den gleichen Bilderwähler verwenden, um Hintergründe zu setzen? Oder brauche ich zwei separate Picker-Controller, um dies zu tun?

+0

Sie können dieselbe Auswahl verwenden, Sie müssen die Daten ändern, die an diese Auswahl übergeben werden. –

+1

@TejaNandamuri Ich stimme nicht zu. Es gibt keinen Grund, einen UIImagePickerController wiederzuverwenden, und es verursacht Probleme, wenn Sie dies tun. – matt

+0

Welchen Unterschied stellen Sie sich vor? Hast du es versucht und es ist fehlgeschlagen? Was ist passiert? Was ist das Problem? – matt

Antwort

2

Die Frage stellt sich heraus werden: Da werde ich UIImagePickerController für mehr als einen Zweck präsentieren, wie kann ich die Zweck diese UIImagePickerController für wurde unterscheiden vorgestellt?

Der einfachste Ansatz besteht darin, verschiedene Delegaten für die verschiedenen Zwecke zu haben. Wenn Sie UIImagePickerController präsentieren, legen Sie ein anderes delegate-Objekt fest. Dieses Objekt weiß, wie man auf einen der insbesondere Zwecke reagiert, für die Sie UIPickerController verwenden.

Eine andere Möglichkeit wäre, die gleiche delegate zu verwenden, aber in diesem Objekt, einen Schalter von einer Art zu werfen. Zum Beispiel könnten Sie eine Bool-Eigenschaft haben. Stellen Sie es für einen Zweck auf true und für den anderen Zweck auf false ein. Dann präsentieren Sie den Pflücker. Der Stellvertretercode konsultiert dieselbe Bool-Eigenschaft und weiß nun, was zu tun ist.

+0

Also, wie würde ich gehen, tun das? Ich verstehe was du bist sagen, machen die Funktion polymorph und was nicht, nur nicht die Umsetzung –

+0

Ich werde nicht den Kabeljau schreiben e für dich, wenn du das fragst. Ich habe gesagt, was ich sagen werde. Meiner Meinung nach habe ich die Frage ziemlich ausführlich beantwortet. – matt

+0

Ich frage, was Sie mit dem Delegierten meinen. Sprechen Sie darüber, einen anderen Parameter an meine Funktion zu übergeben, wenn also sein wahres eine Sache tut und wenn es falsch ist, machen Sie einen anderen? –

Verwandte Themen