popToViewController не удалось открыть для просмотра ошибки
Я использую следующий код:
@IBAction func popToRoot(sender:UIBarButtonItem){
navigationController.popToViewController(foodforteethViewController(), animated: false)
}
Эта функция связана с пользовательской кнопкой "Назад", а файл h связан с файлом мостового соединения target-c/swift. Проблема в том, что я получаю ошибку, как показано ниже:
2014-07-19 23: 35: 40.842 FoodForTeeth [9040: 238499] * Ошибка подтверждения в -[UINavigationController popToViewController:transition:], /SourceCache/UIKit_Sim/UIKit-3232.3/UINavigationController.m:5345 2014-07-19 23:35:40.845 FoodForTeeth[9040:238499] * Завершение работы приложения из-за необработанного исключения "NSInternalInconsistencyException", причина: "Не удалось получить удаленный контроллер представления". * Стек вызовов первого выброса: (0 CoreFoundation 0x00000001023ec995 exceptionPreprocess + 165 1 libobjc.A.dylib 0x000000010209b9a3 objc_exception_throw + 45 2 Повышение CoreFoundation 0x00000001023ec7fa +[повышение объекта NSExet: 01: 0101_0000: дескриптор объекта: NS0: факс-факс: LineNumber: описание:] + 195 4 UIKit 0x0000000100b456b6 -[UINavigationController popToViewController: переход:] + 762 5 FoodForTeeth 0x00000001000272fe _TFC12FoodForTeeth9dietDiary9popToRootfS0_FCSo15UIBarButtonItemT_ + 302 6 FoodForTeeth 0x00000001000274f2 _TToFC12FoodForTeeth9dietDiary9popToRootfS0_FCSo15UIBarButtonItemT_ + 66 7 UIKit 0x00000001009f76b6 -[UIApplication sendAction: до: от:forEvent:] + 75 8 UIKit 0x00000001009f76b6 -[UIApplication sendAction:to:from:forEvent:] + 75 9 UIKit 0x0000000100af91c0 -[UIControl _sendActionsForEvents:withEvent:] + 467 10 UIKit 0x0000000100af858f - UID UIKE: UIK UIT _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 CoreFoundation 0x000000010231826d __CFRunLoopDoSources0 + 269 18 CoreFoundation 0x00000001023178a4 __CFRunLoopRun + 868 19 CoreFoundation 0x00000001023172d6 CFRunLoopRunSpecific + 470 20 GraphicsServices 0x0000000105475bbc GSEventRunModal + 161 21 UIKit 0x00000001009f6288 UIApplicationMain + 22 FoodForTeeth тысяча двести восемьдесят-два 0x0000000100054db3 основных + 115 23 libdyld.dylib 0x0000000102b45145 старт + 1) LibC++abi.dylib: завершение с неперехваченным исключение типа NSException (lldb)
Что не так?
2 ответа
Вы не можете открыть контроллер вида, который не находится в NavigationController
Стек. Вы должны появиться, как это
если вы хотите, чтобы поп к rootViewController, чем есть прямой метод, используйте это
@IBAction func popToRoot(sender:UIBarButtonItem){
self.navigationController.popToRootViewControllerAnimated(false)
}
Другой способ вернуться к конкретному контроллеру представления - использовать сегменты размотки: для чего нужны сегменты разматывания и как вы их используете?