ios - الفرق بين بريسنتيفوكونترولر و إينافيغاتيونكونترولر؟




objective-c cocoa-touch (3)

A UINavigationController هو فئة فرعية من UINavigationController التي تدير كومة من وحدات تحكم عرض ويضيف زر مرة أخرى الخ.

presentViewController هو أسلوب من فئة presentViewController التي تستخدمها لعرض وحدة تحكم عرض مشروط.

من فضلك قل الفرق بين presentViewController و UiNavigationController ؟ هل يمكنني استخدام presentViewController بدلا من UINavigationController للتنقل وجهات النظر المختلفة في التطبيق؟ ماذا يكون السيناريو لاستخدام إما؟


إينافيغاتيونكونترولر هو فئة، بريسنتفيوكونترولر هو طريقة مثيل من إيفيوكونترولر (دائرة الرقابة الداخلية 5 +)، منها إينافيغاتيونكونترولر هو فئة فرعية.

بوشفيوكونترولر هو طريقة مماثلة ل كونتيفسيوفونترولر. وهو أسلوب مثيل من إينافيغاتيونكونترولر، لدائرة الرقابة الداخلية 2 +


presentViewController يقدم آلية لعرض ما يسمى تحكم عرض مشروط. أي وحدة تحكم عرض التي سوف تأخذ السيطرة الكاملة على واجهة المستخدم الخاص بك عن طريق فرضه على رأس وحدة تحكم العرض.

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

وأعتقد أن presentViewController هو الأكثر ملاءمة للاستخدام مع وحدة تحكم عرض واحد فقط التي قدمت في وقت واحد. يمكنك بالتأكيد استخدامه لتكديس المزيد من وحدات التحكم عرض واحد على رأس الآخر (وبالتالي نوع من "تقليد" وحدة تحكم الملاحة الفقراء)، ولكن رهان هو أنك سوف تجد بسرعة شيئا لا يعمل كما كنت تتوقع.

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

لذلك، فإنه يعتمد على ما كنت تحاول القيام به.





uiviewcontroller