iphone - كنترول - تحويل الايفون الى ريموت



إزالة أجهزة التحكم في العرض من مجموعة التنقل (5)

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

https://ffff65535.com


إذا كنت تحاول الانتقال إلى وحدة التحكم في العرض الثاني من جهاز عرض 5 (تخطي 3 و 4) ، [self.navigationController popToviewController:secondViewController] إلى استخدام [self.navigationController popToviewController:secondViewController] .

يمكنك الحصول على secondViewController من مكدس وحدة تحكم التنقل.

secondViewController =  [self.navigationController.viewControllers objectAtIndex:yourViewControllerIndex];

استخدم هذا

if let navVCsCount = navigationController?.viewControllers.count {
    navigationController?.viewControllers.removeSubrange(Range(2..<navVCsCount - 1))
}

وسوف تعتني ViewControllers من navigationController. viewControllers وكذلك في navigationItems مكدسة في navigationBar.

ملاحظة: تأكد من الاتصال به على الأقل بعد viewDidAppear


هذا الحل عمل لي في السريع 4:

let VCCount = self.navigationController!.viewControllers.count
self.navigationController?.viewControllers.removeSubrange(Range(VCCount-3..<VCCount - 1))

مؤشر تحكم العرض الحالي في المكدس هو:

self.navigationController!.viewControllers.count - 1

يمكنك أولاً الحصول على كافة وحدات التحكم في العرض في الصفيف ثم بعد التحقق من فئة وحدة تحكم العرض المقابلة ، يمكنك حذف وحدة التحكم التي تريدها.

هنا قطعة صغيرة من الكود:

NSArray* tempVCA = [self.navigationController viewControllers];

for(UIViewController *tempVC in tempVCA)
{
    if([tempVC isKindOfClass:[urViewControllerClass class]])
    {
        [tempVC removeFromParentViewController];
    }
}

أعتقد أن هذا سيجعل عملك أسهل.


سويفت 3 و 4

self.navigationController!.viewControllers.removeAll()

self.navigationController?.viewControllers.remove(at: "insert here a number")

سويفت 2.1

حذف الكل:

self.navigationController!.viewControllers.removeAll()

إزالة في الفهرس

self.navigationController?.viewControllers.removeAtIndex("insert here a number")

هناك مجموعة من المزيد من الإجراءات الممكنة مثل removeFirst ، وما إلى ذلك.





uinavigationcontroller