RootViewController'da tableView verilerini yeniden yükleyin

TableView'imi rootViewController içinde almaya çalışıyorum ve onu dizeden yeni bir nesne oluşturduktan sonra yeniden yükleyeceğim.

Aşağıdakileri rootVIewController'ın viewDidLoad'unda kullanmak istiyorum:

[tableView reloadDate];

ama hatayı alıyorum:

Bildirilmemiş tanımlayıcı "tableView" kullanımı

Sanırım viewViewDoad yönteminin sonuna kadar tableView nesne nesnesini bildirmedim. Peki, masayı yenilemek için başka hangi seçenekleri kullanmalıyım?

Teşekkürler

0
tableView bu durumda ivar. tableView özelliğine sahip olduğunuzu kabul ediyorum. [self.tableView reloadData];; yazmayı deneyin
katma yazar beryllium, kaynak

1 cevap

TableView öğesini bildirmediyseniz, yeniden yüklemesini söyleyemezsiniz. Uygulamanızın mimarisini çevreleyen bir soru var: 'rootViewCOntroller' derken - bu uygulama RVC'ye atıfta bulunuyor mu? Öyleyse, tableView'ı programlı olarak başlatıyor musunuz veya bir .xib/outletten mi erişiyorsunuz?

Bir XIB'ye erişiyorsanız, mülkünüzdeki prizi [[self tableView] reloadData] çağırıyor olmalısınız.

Tablo görünümünü programsal olarak oluşturuyorsanız, onu yeniden arama çağırmadan önce oluşturmalısınız - ve çoğu durumda, RVC sınıfınızda o tablo görünümüne işaret eden bir özelliği tanımlamak isteyeceksiniz, öyle ki kodunuzda yaptığınız gibi doğrudan erişmek yerine [[self tableView] reloadData] öğesini çağırıyor olmak.

0
katma
Garip terimler için üzgünüm, (obj-c 'ye yeni), Bahsettiğim uygulamalar RVC. TableView programlı olarak başlatıyorum.
katma yazar novicePrgrmr, kaynak
Benim sorunum, nesnenin başka bir sınıftaki diziye eklenmesi olduğunu düşünüyorum.
katma yazar novicePrgrmr, kaynak
Bu yüzden tableView'ınızı olması gerekenden daha sonra başlatıyor gibisiniz. Tabloyu daha önce kodunuzda oluşturmamak için bir motivasyon var mı? Ayrıca, diziye yeni nesnelerin RVC'lerin görünümüne nasıl taşınacağı konusunda da net değilim. ViewDidLoad ... Tablonun ekranda göründüğünü varsayarak, diziye yeni bir model nesnesi eklenmişse, tabloyu yeniden yüklemesini söylemelisiniz. o zaman (ya da bir [tableView insertRowsAtIndexPaths] kullanın ...) ... yine mimarinizi göremiyorum, ancak diziye bir şey eklendiğinde, viewDidLoad çoktan gitti ...
katma yazar isaac, kaynak
Buna yaklaşmanın birkaç yolu var ama heyeti deneyebilirsiniz. Hangi sınıfın tableView'ınızı yönettiği hakkında basit bir protokol tanımlayın, 'modelObjectInserted:' gibi bir yöntem verin. Tanımladığınız protokole potansiyel olarak nesne ekleyebilecek tüm sınıflara uyun. Uygun bir sınıf ne zaman bir nesne ekleyse, o zaman bu temsilci yöntemini de çağırmalıdır. Yöntem, tablo görünümü denetleyicinizde çağrıldığında, uygun işlem yapabilirsiniz; örneğin, yeniden çağırmak veya insertCellForRowAtIndexPath ...
katma yazar isaac, kaynak