/ / popToViewController nie udało się wyświetlić, aby wyświetlić błąd - szybki, poptoviewcontroller

popToViewController nie udało się otworzyć, aby wyświetlić błąd - szybki, poptoviewcontroller

Korzystam z następującego kodu:

 @IBAction func popToRoot(sender:UIBarButtonItem){

navigationController.popToViewController(foodforteethViewController(), animated: false)

}

Ta funkcja jest połączona z niestandardowym przyciskiem Wstecz, a plik h jest połączony w pliku mostkowania celu-c / swift. Problem polega na tym, że pojawia się błąd, jak poniżej:

2014-07-19 23: 35: 40.842 FoodForTeeth [9040: 238499] * Błąd asercji w - [UINavigationController popToViewController: przejście:], /SourceCache/UIKit_Sim/UIKit-3232.3/UINavigationController.m:5345 2014-07-19 23: 35: 40.845 FoodForTeeth [9040: 238499] * Zamykanie aplikacji z powodu nieprzechwyconego wyjątku „NSInternalInconsistencyException”, powód: „Nie udało się uzyskać kontrolera widoku pop-up.” * Stos wywołań pierwszego rzutu: ( 0 CoreFoundation 0x00000001023ec995 wyjątekProces + 165 1 libobjc.A.dylib 0x000000010209b9a3 objc_exception_throw + 45 2 CoreFoundation 0x00000001023ec7fa + [Podniesienie NSException: format: argumenty:] + 106 3 Podstawa 0x0000000101cc637f - [Uchwyt NSAssertionHandlerFailureInMethod: obiekt: plik: numer_wiersza: opis:] + 195 4 UIKit 0x0000000100b456b6 - [UINavigationController popToViewController: przejście:] + 762 5 FoodForTeeth 0x00000001000272fe _TFC12FoodForTeeth9dietDiary9popToRootfS0_FCSo15UIBarButtonItemT_ + 302 6 FoodForTeeth 0x00000001000274f2 _TToFC12FoodForTeeth9dietDiary9popToRootfS0_FCSo15UIBarButtonItemT_ + 66 7 UIKit 0x00000001009f76b6 - [UIApplication sendAction: to: from: forEvent:] + 75 8 UIKit 0x00000001009f76b6 - [UIApplication sendAction: to: from: forEvent:] + 75 9 UIKit 0x0000000100af91c0 - [UIControl _sendActionsForEvents: withEvent:] + 467 10 UIKit 0x0000000100af858f - [UIControl dotykaEnded: withEvent:] + 522 11 UIKit 0x0000000100a3c3b8 - [UIWindow _sendTouchesForEvent:] + 735 12 UIKit 0x0000000100a3cce3 - [UIWindow sendEvent:] + 683 13 UIKit 0x0000000100a0a1a1 - [UIApplication sendEvent:] + 246 14 UIKit 0x0000000100a1707a _UIApplicationHandleEventFromQueueEvent + 17591 15 UIKit 0x00000001009f3269 _UIApplicationHandleEventQueue + 1967 16 CoreFoundation 0x0000000102322a31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 17 CoreFoundation0x000000010231826d __CFRunLoopDoSources0 + 269 18 CoreFoundation 0x00000001023178a4 __CFRunLoopRun + 868 19 CoreFoundation 0x00000001023172d6 CFRunLoopRunSpecific + 470 20 GraphicsServices 0x0000000105475bbc GSEventRunModal + 161 21 UIKit 0x00000001009f6288 UIApplication Główne + 1282 22 FoodForTeeth 0x0000000100054db3 main + 115 23 libdyld.dylib 0x0000000102b45145 start + 1 ) libc ++ abi.dylib: kończenie z nieprzechwyconym wyjątkiem typu NSException (lldb)

Co się dzieje?

Odpowiedzi:

1 dla odpowiedzi № 1

nie można otworzyć kontrolera widoku, którego nie ma NavigationController stos. Powinieneś pop w ten sposób

jeśli chcesz pop do rootViewController niż istnieje metoda bezpośrednia, użyj tego

 @IBAction func popToRoot(sender:UIBarButtonItem){


self.navigationController.popToRootViewControllerAnimated(false)
}

0 dla odpowiedzi nr 2

Innym sposobem na powrót do określonego kontrolera widoku byłoby użycie sekwencji rozwijania: Co to jest Odwróć uwagę i jak z nich korzystasz?