2010-01-20 7 views
5

Kullanıcı Kaydet'i tıkladığında görüntü kaydetmek için kullanılan bir yöntem var. Görüntüyü kaydetmek için performSelectorInBackground kullanıyorum, viewcontroller attı ve önceki viewcontroller gösteriliyor.performSelectorInBackground gerçekleştirildiğinde, diğer viewcontroller'ı bilgilendirin

Görüntüyü kaydetme işlemi bittiğinde verilerini (öncekiUIViewController'da) yeniden yüklemesini istiyorum.

Bunu nasıl yapabilirim? : Glokom kaydetmek

böyle denir:

[self performSelectorInBackground:@selector(saveImage) withObject:nil]; 
[self.navigationController popViewControllerAnimated:YES]; 

cevap

9

saveImage yönteminizde, görüntüyü kaydetmeyi bitirdikten hemen sonra ve yöntemden dönmeden önce bildirim gönderin. Böyle bir şey:

masa taşıma kontrolörü olarak
// post notification 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ImageSaved" object:nil]; 

,

- (void) imageSaved:(NSNotification *)notification{ 

    [self.tableView reloadData]; 

} 

uygulamak ve viewDidLoad yöntem bildirimleri için kaydetmek için aşağıdaki kodu ekleyin içinde:

[[NSNotificationCenter defaultCenter] addObserver:self 
           selector:@selector(imageSaved:) 
               name:@"ImageSaved" object:nil]; 

nihayet kaydını

eklerken dealloc yönteminde
+0

Mükemmel, teşekkürler. – McDJ

2

Ben saveimage rutin sonunda yöntemini çağıran gitmek için bir yol olduğunu düşünüyorum.

[self performSelectorInBackground:@selector(saveImage) withObject:previousView]; 

gibi Belki bir şey Ve sen, agnostik saveimage tutmak için previousView kullanabileceği bir geri arama ile bir protokol oluşturmak istiyorsanız.

@protocol processingFinishedDelegate 
-(void)processingFinished; 
@end 

yüzden saveimage sonunda gerekecek:

[(id<processingFinishedDelegate>)object processingFinished]; 

ve elbette previousView sınıf arayüzü temsilci işlemek gerekir.

0

UITextView'ü önerilen "affedilmemiş" yaklaşımıyla güncelleştirmek için bunu kullanırken sorun yaşıyorum. Birkaç farklı yolu denedim ama hepsi başarısız oldu ... Ben de bununla birlikte bildirimleri denedim + gözlemciler ama başarı yok ... Neden bu? UILabel üzerinde çalışıyor ancak bu iletiyle UITextView yok:

Web kilidini ana iş parçacığı veya web iş parçacığı dışındaki bir iş parçacığından almak için çalıştı. Bu, UIKit'e ikincil bir threaddan çağrılmanın bir sonucu olabilir. Şimdi çöküyor ...

İlgili konular