تطبيق iPhone: التسلسل الهرمي والهندسة المعمارية للتطبيق بشكل عام

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

  •  05-07-2019
  •  | 
  •  

سؤال

لقد كنت أعاني قليلاً من أول تطبيق iPhone الحقيقي وأردت الحصول على بعض النصائح حول كيفية تنظيم ذلك. أنا أبحث عن بعض أفضل الممارسات من حيث إنشاء مكونات واجهة المستخدم وربطها معًا لإنشاء تدفق التطبيق (إنشاء طرق عرض/وحدات تحكم برمجيًا مقابل منشئ الواجهة ، إلخ ...).

ملخص:
أحتاج إلى إظهار عرض "تسجيل الدخول" في بدء تشغيل التطبيق.
-عرض عرض "الاشتراك" إذا انقروا على زر التسجيل.

بمجرد تسجيل الدخول ... لدي TabbarController تحميل 4 طرق عرض. سيتعين على هذه المشاهدات الأربعة تحميل وجهات نظر فرعية (مثل Master Detail).

سؤالي هو:
1) ما هي أفضل طريقة لتجميع بنية التنقل هذه معًا؟ إنشاء كل طريقة عرض كـ .xib مع ViewController المقابل؟ كيف يتم لصقها معا؟

2) كيف يجب أن أتعامل مع التسجيل/التسجيل ، يجب عدم عرض أي تباب في البداية ، ولكن سيحتاجه بعد مصادقة المستخدم.

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

أعلم أن هذا قد يكون مربكًا بعض الشيء ، وكل ذلك وأي مساعدة موضع تقدير كبير.

تحرير: بالنسبة لعرض تسجيل الدخول أعلى شريط علامة التبويب ، استخدمت هذا ، بسيطًا جدًا.

LoginViewController *loginViewController = [[LoginViewController alloc] init];
[loginViewController initWithNibName:@"Login" bundle:nil]; 
[self.tabBarController presentModalViewController:loginViewController animated:YES];
هل كانت مفيدة؟

المحلول

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

أما بالنسبة لعرض تسجيل الدخول ، فإن النهج الشائع هو استخدام شريط علامة التبويب على النحو الوارد أعلاه ، ولكن في App Applicate ApplicationDidFinishLaunch Method تقديم وحدة تحكم عرض مشروط تعرض شاشة تسجيل الدخول. يخفي وحدة التحكم الوسيطة شريط علامة التبويب وكل شيء آخر حتى يتم القيام به ، ثم يمكن رفضه.

نصائح أخرى

1) ما هي أفضل طريقة لتجميع بنية التنقل هذه معًا؟ إنشاء كل طريقة عرض كـ .xib مع ViewController المقابل؟ كيف يتم لصقها معا؟

يستخدم UINavigationController وادفع طرق العرض المخصصة الخاصة بك على مكدس التنقل حسب الحاجة. تحقق من تطبيق وحدة تحكم التنقل على سبيل المثال عبر XCode's مشروع جديد خيار للتعرف على كيفية عمل هذا.

2) كيف يجب أن أتعامل مع التسجيل/التسجيل ، يجب عدم عرض أي تباب في البداية ، ولكن سيحتاجه بعد مصادقة المستخدم.

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

ربما استخدم عرض الرسوم المتحركة لإطفاء شريط علامة التبويب بعد المصادقة الناجحة.

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

سينتهي بك الأمر إلى إعادة كتابة مشروعك عدة مرات - وهو أمر جيد. تحقق من تطبيقات عينة Apple (متوفرة من موقع iPhone ADC) لأنها تحتوي على عدة طرق "أفضل الممارسات" لاستخدام العديد من UIKit عناصر. فيما يتعلق بتجميع تطبيق أكبر ، حافظ على تصميمك بسيطًا قدر الإمكان وإعادة استخدام أكبر قدر ممكن من مكونات واجهة المستخدم الخاصة بـ Apple. يمكنك دائمًا التخصيص لاحقًا.

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

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

تقدم Apple الإرشادات التالية:

عند إنشاء ملفات NIB الخاصة بك ، حاول وضع الإرشادات التالية في الاعتبار:

صمم ملفات NIB الخاصة بك مع وضع التحميل كسول في الاعتبار. خطط لتحميل ملفات NIB التي تحتوي فقط على تلك الكائنات التي تحتاجها على الفور.

في ملف NIB الرئيسي لتطبيق Mac OS X ، فكر في تخزين شريط قائمة التطبيق فقط وكائن مندوب تطبيق اختياري في ملف NIB. تجنب تضمين أي عناصر Windows أو مستخدم واجهة المستخدم التي لن يتم استخدامها حتى بعد إطلاق التطبيق. بدلاً من ذلك ، ضع هذه الموارد في ملفات NIB منفصلة وتحميلها حسب الحاجة بعد الإطلاق.

تخزين مكونات واجهة المستخدم المتكررة (مثل Windows المستند) في ملفات NIB منفصلة.

بالنسبة إلى نافذة أو قائمة يتم استخدامها فقط من حين لآخر ، قم بتخزينها في ملف NIB منفصل. عن طريق تخزينه في ملف NIB منفصل ، يمكنك تحميل المورد في الذاكرة فقط إذا تم استخدامه بالفعل.

لمزيد من المعلومات ، يمكنك زيارة:

http://developer.apple.com/iphone/library/documentation/cocoa/conceptual/loadingresources/cocoanibs/cocoanibs.html#//apple_ref/doc/uid/10000051-ch4

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