سؤال

لدي تطبيق iPhone الملاحة وهو "المستوى الثاني" وحدة تحكم حاليا A UiviewController الذي يحتوي NIB على Uiview. أقدمت مساحة في الجزء العلوي من Uiview لبار التنقل ثم أضفت شريطا للأداة في الأسفل، حيث قمت بوضع زر تحديث وتسمية ومؤشر نشاط. أخيرا، ولكن ليس أقلها، أضع عرض طاولة في الوسط.

لقد قمت بتوصيل كل شيء بين وحدة التحكم والأحجار غير المرغوب فيها وجعل مالك الملف يتصل ب UIVIEW و DataSource والمنفوض ل Oiview المرفقة من قبل Uiview للإشارة إلى مالك الملف وكل شيء يعمل بشكل جيد.

لكن لا يمكنني معرفة كيفية سرد عرض الجدول للتحديث.

اعتقدت أنني يمكن أن أضع هذا في الكود حيث أريد تحديث الجدول:

[self.tableView reloadData];

ولكن ما لم يكن جهاز التحكم في المستوى الثاني الخاص بي هو NiatedViewController الذي لن يترجم سطر التعليمات البرمجية. عندما أقوم بجهاز تحكم المستوى الثاني في المستوى الثاني، يفجر تطبيقي عندما يتم تحميل وحدة تحكم المستوى الثاني لأن مالك الملف لا يشير إلى وحدة تحكم عرض جدول، وعند جعل مالك الملف يشير إلى منفذ عرض الجدول بدلا من ذلك الرأي، والأشياء تعمل باستثناء حقيقة شريط الأدوات الخاص بي في الأسفل، إلى جانب زر التسمية والحديث لا تظهر بعد الآن.

لقد حاولت أيضا إضافة

[self refresh];

بدلا من [self.tableview roodddata] ولكن الكود يتعطل في حلقة منعش نفسه.

كيف يمكنني الحصول على كل هذا يعمل؟ أعتقد أنني بحاجة إلى مغادرة جهاز تحكم المستوى الثاني كمستوى UIViewController لكن ما زلت أريد أن أكون قادرا على الحصول على ApimalView لأنه يحتوي على تحديث نفسه عندما أريده.

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

المحلول

لماذا لا يمكن أن يكون جهاز التحكم في المستوى الثاني لشخص آخر؟ إنها فئة فرعية من UiviewController تبدأ به، لذلك أنت لا تفقد أي وظيفة.

في أي حال، لا تملك فئات UIViewController UIViewController غير القابلة للولاية tableView الممتلكات التي يمكنك الاتصال بها. يجب أن تمسك بدلا من ذلك إلى عرض الجدول في Ivar الخاص بك واتصل بذلك. (يمكنك حتى الاتصال به tableView; ؛ عليك فقط تحديد ذلك بنفسك.)

@interface MyViewController : UIViewController {
    UITableView *tableView;
}

@property(nonatomic,retain) IBOutlet UITableView *tableView;

- (void)myMethod;

@end
@implementation MyViewController

@synthesize tableView;

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