2012-01-10 15 views
7

iOS navigasyon uygulaması ile kod, bu sorun ile karşı karşıya gelmiş:viewWillAppear viewDidLoad vs ios

nerede UITableView yöntemi "initdata" koyabilirsiniz? viewWillAppear veya viewDidLoad?

Lütfen bana yardım edin.

+0

Bu, init verileriyle ne demek istediğinize bağlıdır. – Sulthan

+0

Gereksiniminiz nedir? Kodu her iki yere koyarsam –

cevap

14

Uygulamanın şartının initdata koyabilirsiniz,

tablo verileri yeni Verilerle her zaman yük gerekiyorsa

o zaman Aksi

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    //initData 
} 

altında olmalıdır masa ihtiyaçları varsa değişmez veya Veri üzerinde gerçekleştirilen herhangi bir düzenleme çalışması yok mu tek Data tarafından yeniden edilecek, sen obu resimleri daha iyidir

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    //initData 
} 
+0

. Bu tabloyu bir UInavigationcontroller – Clover03ti05

+0

içine bastığımda bu kodu 2 kez çalıştırır. Yalnızca View.It işlevinin değişiklik değerine bağlı olarak, sizin diziniz olarak "viewwillAppear" altına yerleştirmelisiniz. –

+0

Hiçbir zaman verileri inWillAppear'da başlatma. Görüntü kontrol cihazını ekrana (di¤er VC'ye veya se¤e bafllar ›na) yükleyece¤inize ba¤l› olarak, hiç çal ›maymayabilir. –

2

kullanmalıdırveya initWithCoder: yöntemini kullanın ve yüklenen verileri -(void)dealloc numaralı telefondan bırakın.

Ayrıca, viewDidLoad içinde alabilir ve yüklenen verileri viewDidUnload içinde serbest bırakabilirsiniz.

O dizi üst görünümünde seçime bağlı olarak umut: Ama viewWillAppear:

Edit o çağıran önlemek için daha iyidir. Bu durumda, görüntü denetleyicisine basmadan önce durumu ayarlayan ve verileri başlatan bir ayarlayıcı yöntemi yazın.

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 
// Pass the selected object to the new view controller and depend on that, load the data. 
[detailViewController initData:(id)[_list objectAtIndex:indexPath.row]]; 
[self.navigationController pushViewController:detailViewController animated:YES]; 
[detailViewController release]; 
+0

, UIDview için hazırlanmak için bir NSArray ihtiyacım var. ve bu dizinin değeri, çocuğun Görünüm değerine bağlı olarak değişir. – Clover03ti05

+0

Cevabımı düzenledim – Ilanchezhian

İlgili konular