سؤال

أنا أعمل على تطبيق أرغب في استخدام نفس المزيج من أشرطة التنقل وعلامات التبويب التي يستخدمها تطبيق iPod/الموسيقى للتنقل في قوائم التشغيل.

أساسًا:

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

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

ما هو أفضل نهج أساسي لهذا؟

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

المحلول

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

تحتوي كل علامة تبويب تراها في تطبيق iPod على وحدة تحكم في التنقل.تقوم وحدة التحكم في التنقل بتغليف وحدات التحكم في العرض الجذري لعلامات تبويب التطبيق.وبعد ذلك يتم تعيين كل وحدة من وحدات تحكم التنقل كوحدات تحكم ViewControllers لوحدة تحكم علامة التبويب.سيبدو الرمز مثل هذا

FirstTabViewController *first = [[FirstTabViewController alloc] init...];
SecondTabViewController *second = ...;

UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:first];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:second];

myTabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nil];
// Then make sure to release things to avoid leaks

إذا كنت تريد التعامل مع الانتقال من قوائم التشغيل مثلاً إلى قائمة الأغاني في قائمة تشغيل محددة، فيمكنك القيام بذلك في وحدة التحكم في عرض قائمة التشغيل ([self.navigationController pushViewController:theListOfSongsViewController animated:SUREWHYNOT]).

نصائح أخرى

حتى الآن، أنا أتطلع إلى UITabBarController مع UINavigationControllers في كل جزء مع رمز مخصص صغير لإعادة وحدة التحكم في التنقل في علامة التبويب الهدف إلى الجذر على مفتاح علامة التبويب.

لدى Apple بعض الوثائق الرائعة حول دمج وحدات التحكم في العرض (وحدات التحكم في التنقل داخل وحدات التحكم في علامة التبويب)

http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/CombiningViewControllers/CombiningViewControllers.html

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