كيفية استخدام UISearchDisPlayController من وحدة تحكم داخل وحدة تحكم UITABBAR؟

StackOverflow https://stackoverflow.com/questions/1257724

سؤال

لدي جهاز تحكم UITABBAR يدير العديد من وحدات التحكم (باستخدام SDK 3.0). واحدة من هذه هي وحدة تحكم طاولة وأحتاج إلى توفير إمكانية البحث باستخدام UISearchDisPlayController. يعتمد كل التعليمات البرمجية الخاصة بي على مثال Apple Tablesearch. ومع ذلك، عند النقر على علامة التبويب، تظهر وحدة تحكم TableView تعرض محتواها ذات الصلة، ولكن لا يظهر No SearchBar. لقد قمت بفحص XIB في IB للتأكد من تعيين جميع المنافذ بشكل صحيح، ولكن بغض النظر عن ما أحاول أن أعرفه الذاتي.

في الممارسة العملية، قمت بنسخر Mainview.xib من مثال Tablesearch وتعيين فئة مالك الملف إلى فئة وحدة التحكم الصحيحة في علامة التبويب. المنافذ هي مجموعات كما في المثال Mainview.xib. هل أفتقد أي خطوة مهمة أو القيام بشيء خاطئ؟

شكرا لكم مقدما.

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

المحلول 3

حسنا، لقد وجدت كيفية حلها. في حالتي، كانت المشكلة ترجع إلى حقيقة أنني كنت أستخدم وحدة تحكم مضمنة داخل UITABBARCONTROLLER كأحد علامات التبويب المدارة (أي كطفل).

إزالة وحدة التحكم من UITABBARCONTRoller، ثم قم بإضافة UINAVICTONTroller إلى UITABBARCONTROLLER بدلا من ذلك، وأخيرا وضع جهاز التحكم الخاص بي كطفل من UINAVICTCONTROLLER حل المشكلة تماما.

أنا لا أفهم لماذا هذا أمر كذلك (لا توجد معلومات مرتبطة في الوثائق، كما يحدث في كثير من الأحيان)؛ ومع ذلك، يعمل الآن مثل سحر. مع أطيب التحيات.

نصائح أخرى

كان لدي نفس المشكلة وحدث للتعثر على هذا الحل ...

إذا كان لديك وحدة تحكم عرض الجدول الخاص بك (على سبيل المثال. UISearchDisplayController) متداثر في شريط تبويب أو وحدة تحكم ملاحة باستخدام منشئ واجهة، تحتاج إلى تعيين "اسم NIB" في نافذة "مفتش السمات".

سيكون اسم NIB هو الشخص الذي يحمل عرض الجدول ولديه وحدة تحكم (على سبيل المثال. UISearchDisplayController) كالمالك الملف.

أنا أيضا الحصول على هذه المشكلة :( هو شريط البحث الحصول على مخفية وراء الجدول

punforgiven، هل جربت هذا ...؟

searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 40)]; 
[self.tableView setTableHeaderView: searchBar];

هذا يخلق يدويا بحثا ويعمل. لكنني أقوم ببعض الخطأ الغبي في IB أن SearchBar لا يظهر حتى لو كانت اتصالاتي مثالية. :-(

قم بتحديث هذا المنشور إذا حصلت على إجابة ...

كان لي مشكلة مشابهة

لحل اضطررت إلى القيام بخطوة إضافية واحدة لتحقيق إجابة غير مفهومة في بلدي

1) قم بإنشاء UITABController 2) ثم قمت بسحب وحدة تحكم UINAVIGIGIONATIONY في وحدة تحكم التبويب 3) ثم تم سحبها في NavigationalController كطفل 4) ثم تم تغيير (3) فئة ليكون MyTableWithSearchBarViewController في المفتش - تحقق مما إذا كان اسم NIB صحيح وتغيير هذا إذا لزم الأمر في المفتش أيضا 5) ثم اضطررت إلى حذف الجدول المحيطي الذي يتم إنشاؤه تلقائيا بواسطة IB في الخطوة (3). عندها فقط سيظهر شريط البحث بشكل صحيح ...

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

غريب

يحتوي TOMTRAPEZE على الإجابة الصحيحة إذا كان ملف NIB الخاص بك يحتوي على NiatedViewController. ولكن، إذا كنت تقوم بتحميل AtimentViewController في التعليمات البرمجية - مثل دفعها على كومة من UINAVICTONTroller - الحل مختلف قليلا.

عند تهيئة ApartyViewController أو الفئة الفرعية، تحتاج إلى استخدام -initwithnibname: Boundle: نموذج التهيئة وتحديد اسم ملف NIB الخاص بك. بالتناوب، يمكنك استخدام المعيار -InitWithstyle: تهيئة خاصية Nibname يدويا قبل تحميل العرض.

إذا لم يتم تعيين خاصية Nibname عند تحميل العرض، فلن يستخدم OtherViewController منطق بحث NIB OViewController العادي. سوف يقوم فقط بتحميل قياسي JitalView بدلا من ذلك.

لقد تعلمت مؤخرا أنني أستطيع تحميل ملفات NIB [[MyViewController alloc] initWithNibName:nil bundle:nil]; عندما يحتوي ملف NIB بنفس اسم الفصل (أي MyViewController.xib). اتضح أن التهيئة بهذه الطريقة تسبب "UISearchBarandUISearchBardisPlayController` لعدم العرض. عندما قمت بتم تهيئة وحدة التحكم في العرض عن طريق كتابة اسم الفصل فعليا، ظهر شريط البحث الخاص بي بشكل صحيح. اعتقدت في البداية أن لديها شيء يتعلق بكيفية تقديم وحدة تحكم الرأي ولكن كان سعيدا بأنه لم يكن كذلك.

PGWSearchViewController *searchVC = [[PGWSearchViewController alloc] initWithNibName:@"PGWSearchViewController" bundle:nil];

searchVC.modalPresentationStyle = UIModalPresentationFullScreen;
searchVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

[self presentViewController:searchVC animated:YES completion:^{ }];

يستخدم هذا IOS SDK 5.1 و XCode 4.3.1.

إصلاح آخر محتمل يعمل بالنسبة لي هو INI INITE The OtherViewController مع InitWithnibname: Bundle:

SearchEntryTableViewController* searchEntryTableViewController = [[SearchEntryTableViewController alloc]initWithNibName:@"SearchEntryTableViewController" bundle:nil];

لتخدع القيميتينيككونترولر في Uinavigcontroller قبل وضعه في UItabbarcontroller لا يحل المشكلة بالنسبة لي ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top