سؤال

عندما يكون لدي UITableView كجزء من وحدة التحكم في العرض المرئي، كيف يمكنني إعادة تحميله بحيث تتغير البيانات التي أشاهدها إلى البيانات الجديدة.يبدو أن مجرد الاتصال بإعادة التحميل لا يؤدي إلى تحديث البيانات حتى أقوم بتمريرها.

هل كانت مفيدة؟

المحلول

والدعوة في طريقة reloadData بتحديث البيانات في أقرب وقت كما تسمى هذه الطريقة. فإنه لا ينتظر الجدول أن تمريره. تأكد من أن مصدر البيانات (صفيف أو قاموس أو في أي مكان كنت قد قمت بحفظ القيم) يتم تغيير قبل الاتصال reloadData.

نصائح أخرى

هل منعش البيانات قبالة الترابط الرئيسي؟ إذا كان الأمر كذلك، تحتاج إلى استدعاء الأسلوب reloadData استخدام الأسلوب التالي:

و- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

وحتى لtableView سيكون:

و[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

مجرد تحديث عام 2013، يجب أن تكون قادرًا أيضًا على إعادة تحميل البيانات، طالما أنك تستخدمها

dispatch_async(dispatch_get_main_queue(), ^{
    [self.tableView reloadData];
});

GCD رائع!

وومساعدة البرمجية التالية منك إعادة تحميل الجدول بينما كنت أبحث ما يلي:

[self.tableView reloadData];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top