Ma'lumotlarni qayta tiklash rootViewController-da ma'lumotlarni ko'rish

RootViewController-da tableView-ni o'z ichiga olgan qatorda yangi ob'ektni yaratgandan keyin qayta yuklashga harakat qilaman.

RootVIewController menyusida quyidagicha foydalanmoqchiman:

[tableView reloadDate];

lekin men xatoga yo'l qo'yaman:

Noto'g'ri identifikatordan foydalanish "tableView"

Menimcha, viewDidLoad usuliga qadar ob'ekt tableView-ni e'lon qilmaganligim sababdir. Xo'sh, jadvalni yangilash uchun yana qanday variantlar bor?

Rahmat

0
tableView bu holda ivar. tableView xususiyati mavjud deb o'ylayman. [self.tableView reloadData]; yozishni harakat qilib ko'ring
qo'shib qo'ydi muallif beryllium, manba

1 javoblar

Agar siz tableViewni e'lon qilmagan bo'lsangiz, uni qayta yuklashni aytolmaysiz. Ilovangizning arxitekturasi bilan bog'liq bo'lgan biror narsa bor: "rootViewCOntroller" deganingizda - bu RVC ilovalariga murojaat qiladimi? Agar shunday bo'lsa, jadvalni dasturiy qilib ko'rsatish yoki uni .xib/chiqishdan ochish kerakmi?

Agar siz XIBga kirsangiz, siz o'zingizning mulkini [[self tableView] reloadData] deb nomlashingiz kerak.

Jadval ko'rinishini muntazam ravishda tuzadigan bo'lsangiz, uni qayta chaqirishdan oldin uni yaratishingiz kerak bo'ladi va ko'p hollarda siz RVC klassidagi xususiyatni ushbu jadvalga qarashni xohlaysiz. O'zingizning kodingizdagi kabi to'g'ridan-to'g'ri kirish uchun [[self tableView] reloadData] deb chaqirishingiz mumkin.

0
qo'shib qo'ydi
G'alati shartlar uchun uzr so'rayman (yangi obj-c), Bu men ko'rsatadigan RVC ilovalari. TableView dasturiy jihatdan namunasini keltiraman.
qo'shib qo'ydi muallif novicePrgrmr, manba
Muammo shundaki, ob'ekt ob'ektni boshqa sinfdagi qatorga qo'shib qo'yadi, shuning uchun men bir sinfdan yana bir dona qayta nomlashni bilmayman
qo'shib qo'ydi muallif novicePrgrmr, manba
Demak, siz o'zingizning jadvalingizdan keyinroq paydo bo'lishingiz kerakligini anglatadi. Sizning kodingizda avvalgi jadvalni yaratmaslik uchun sabab bormi? Shuningdek, RVCs viewDidLoad-da qatorga yangi narsalarni qo'shish haqida aniq emasman ... Ekranda jadvalni oldingiz deb hisoblasangiz, yangi model ob'ekti qatorga qo'shilsa, tableView-ni qayta tiklash kerak O'sha paytda (yoki [tableView insertRowsAtIndexPaths] dan foydalaning) ... yana sizning arxitektoringizni ko'ra olmayman, lekin bir qatorga qo'shilgan vaqtga qaraganda, viewDidLoad uzoq vaqtdan beri ketib qolgan ...
qo'shib qo'ydi muallif isaac, manba
Bunga yondashishning bir necha yo'li bor, biroq delegatsiyani sinashingiz mumkin. "TableView" ni boshqaradigan har qanday oddiy protokolni belgilang, "modelObjectInserted:" kabi usulni bering. Siz belgilagan protokolga moslamalarni kiritish mumkin bo'lgan barcha sinflarni moslashtiring. Muvofiq sinf biror ob'ektni qo'shsa, u holda bu delegat usulini chaqirish kerak. Uslubingiz jadval ko'rinishidagi tekshirgichga chaqirilganda, unda keyinchalik qayta yuklash yoki insertCellForRowAtIndexPath ... deb chaqirishga to'g'ri keladi.
qo'shib qo'ydi muallif isaac, manba