UITextfields blank na het tonen van UIImagePickerController

Ik heb een formulier met twee UITextFields en een knop. De gebruiker voert waarden in de twee velden in en klikt vervolgens op de knop. Dit geeft de UIImagePickerController weer zodat hij/zij een foto kan maken. Na klikken op de knop "Gebruiken" in het voorbeeld van de afbeelding, wordt de UIImagePickerController afgedaan, maar alle tekst die in de twee UITextFields was ingevoerd, is verdwenen. Dit gebeurt alleen op de IPhone (niet de IPad) en gebeurt alleen wanneer de gebruiker de camera gebruikt in plaats van een foto uit de camerarol te kiezen. Hier is de code.

-(IBAction)btnTakePic {
    if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.mediaTypes = [NSArray arrayWithObjects: (NSString *) kUTTypeImage, nil];
    imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    imagePicker.allowsEditing = NO;
    [self presentModalViewController: imagePicker animated:YES];
    [imagePicker release];
}
else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil];
    imagePicker.allowsEditing = NO;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
}
}

Ik ben door de debugger gestapt en bij het betreden van de picker DidFinishPickingWithMediaInfo zijn de tekstvelden al leeg, dus het probleem lijkt zich daar niet te voordoen. De IPad draait 4.3.3, de IPhone is 4.2.1 en de app wordt ontwikkeld in XCode 4 met 4.3 als de basis-sdk en 4.2 als het implementatiedoel. Alle hulp wordt gewaardeerd.

0

1 antwoord

Ik vermoed dat je een geheugenwaarschuwing krijgt (veelvoorkomend bij het gebruik van de camera) en de weergave wordt gelost, wanneer de weergave herlaadt (na terugkeer van de afbeeldingskiezer) is de weergave in de standaardstatus, vakken leeg.

U moet de waarden van de vakjes opslaan wanneer ze worden ingevoerd (in variabelen). Controleer vervolgens in viewDidLoad of u waarden hebt, als u de teksteigenschap text fields instelt op de gewenste waarden.

Controleer de console, je hebt waarschijnlijk Memory Warning Level 1 (of misschien 2)

2
toegevoegd
@Bob Dit is volkomen normaal, in feite zijn er geheugenwaarschuwingen om je de mogelijkheid te geven om elk geheugen vrij te geven dat je niet nodig hebt, het is het standaard mechanisme. Het geheugen dat nodig is om de camera te laten werken is groot en tenzij uw toepassing een ongelofelijk lichte voetafdruk heeft, ontvangt u een waarschuwing. Niveau 2-waarschuwingen zijn ernstiger en als je die krijgt, moet je echt geheugen vrijmaken, het is de laatste moeite voordat het systeem de app blokkeert. Negeer nooit de waarschuwingen, laat dingen vrij die je niet nodig hebt, of kan herladen, als het systeem niet voldoende geheugen terughaalt in niveau 1, krijg je level 2.
toegevoegd de auteur Simon Lee, de bron
Ik vermoed hetzelfde. @Bob: u kunt dit controleren door een onderbrekingspunt in te stellen in viewDidUnload: voor de view-controller wordt deze onderbroken als er een geheugenwaarschuwing is en de weergave wordt verwijderd.
toegevoegd de auteur progrmr, de bron
Simon en progrmr - Dank aan jullie beiden. Dat is precies wat er gebeurde. Ik ben nog vrij nieuw voor IOS-ontwikkeling. Maar mijn vraag is: moet ik me zorgen maken over deze geheugenwaarschuwing (het was niveau 1) of is dit alleen iets dat met de camera te maken heeft en kan ik het negeren?
toegevoegd de auteur Bob, de bron