UIImagePickerController gösterildikten sonra UITextfields boş

İki UITextFields ve bir düğme ile bir form var. Kullanıcı değerleri iki alana girer ve ardından düğmeye basar. Bu, UIImagePickerController'ı görüntüler ve fotoğraf çekebilir. Resim önizlemesinde "Kullanım" düğmesine tıkladıktan sonra, UIImagePickerController işten atılır, ancak iki UITextFields uygulamasında girilmiş herhangi bir metin kaybolur. Bu sadece IPhone'da (IPad'de değil) gerçekleşir ve sadece kullanıcı kamera rulosundan bir fotoğraf seçmenin aksine kamerayı kullandığında gerçekleşir. İşte kod.

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

Hata ayıklayıcısını kullanarak adım attım ve seçtiyseniz, DidFinishPickingWithMediaInfo, metin alanları zaten boş, bu yüzden sorun orada görünmüyor. IPad 4.3.3 çalışıyor, IPhone 4.2.1 ve uygulama XCode 4'te 4.3 ile temel sdk ve 4.2 dağıtım hedefi olarak geliştiriliyor. Herhangi bir yardım takdir edilir.

0

1 cevap

Bir bellek uyarısı aldığınızdan şüphelenirim (fotoğraf makinesini kullanırken yaygındır) ve görünüm boşalırsa, görünüm yeniden yüklendiğinde (görüntü seçiciden döndükten sonra) görünüm varsayılan kutularda, kutular boştur.

Girdiğiniz zaman (değişken olarak) kutuların değerlerini depolamanız gerekir, daha sonra metin alanları metin özelliğini istenen değerlere ayarlarsanız, değerleriniz varsa viewDidLoad kontrol edin.

Konsolu kontrol edin, büyük olasılıkla Memory Warning Level 1'e sahip olacaksınız (veya belki 2)

2
katma
@Bob Bu tamamen normaldir, aslında bellek uyarıları size ihtiyacınız olmayan herhangi bir belleği çıkarma fırsatı sunar, bu standart mekanizmadır. Kameranın çalışması için ihtiyaç duyulan hafıza büyüktür ve uygulamanız inanılmaz derecede hafif bir ayak izine sahip olmadıkça bir uyarı alırsınız. Seviye 2 uyarıları daha ciddidir ve eğer bunları gerçekten hafızayı boşaltmanız gerekiyorsa, sistem uygulamayı jettisons önce son çabadır. Uyarıları asla ihmal etmeyin, ihtiyaç duymadığınız şeyleri serbest bırakmayın ya da sistem yeniden yüklenemezse, seviye 1'de yeterli hafıza telafi edilmezse 2. seviyeyi alacaksınız.
katma yazar Simon Lee, kaynak
Ben de aynı şeyden şüpheleniyorum. @Bob: viewDidUnload'da bir kesme noktası ayarlayarak bunu doğrulayabilirsiniz: görünüm denetleyicisi için, bir bellek uyarısı varsa ve görünüm kaldırılırsa çağrılır.
katma yazar progrmr, kaynak
Simon ve progrmr - İkinize de teşekkürler. Tam olarak olan şey buydu. iOS gelişimine hala yeni yaşıyorum. Ama sorum şu ki bu hafıza uyarısı hakkında endişelenmem gerekiyor mu (seviye 1) veya bu sadece kamera ile ilgili bir şey mi ve bunu görmezden gelebilir miyim?
katma yazar Bob, kaynak