Ошибка при переходе (обычная и обычная) от контроллера модального вида - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть приложение, которое имеет следующую навигацию: (Контроллер навигации) -> Экран-заставка -> Главный экран -> Модальный VC1 -> Модальный VC2, когда пользователь вошел в систему. Он выходит на экран-заставку -> экран загрузки, когдапользователь не вошел в систему.

В Modal VC2 есть кнопка выхода из системы, в которой я хочу развернуться на заставке.

Я попытался размотать метод, чтобы попытаться размотаться в первый кореньконтроллер:

self.performSegue(withIdentifier: "unwindSegueToSplash", sender: nil)

, и я удостоверился, что у меня был правильный идентификатор и правильный IBAction для перемотки в правильных файлах:

(Будет обновлено это с фотографиями, как только я получу достаточно репутации, чтобы сделатьитак)

но я получаю эту ошибку (где он говорит, что не распознает идентификатор):

2018-12-28 21:56:22.171802-0800 test[23398:2685262] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<test.LogOutViewController: 0x7ff5ce6189c0>) has no segue with identifier 'unwindSegueToSplash''
*** First throw call stack:
(
0   CoreFoundation                      0x000000010ec3c1bb __exceptionPreprocess + 331
1   libobjc.A.dylib                     0x000000010e1da735 objc_exception_throw + 48
2   UIKitCore                           0x0000000113317568 -[UIViewController shouldPerformSegueWithIdentifier:sender:] + 0
3   test                                0x000000010bc6f944 $S5test20LogOutViewControllerC03logC0yyypSgF + 580
4   test                                0x000000010bc6fa2c $S5test20LogOutViewControllerC03logC0yyypSgFTo + 188
5   UIKitCore                           0x0000000113934ecb -[UIApplication sendAction:to:from:forEvent:] + 83
6   UIKitCore                           0x00000001133700bd -[UIControl sendAction:to:forEvent:] + 67
7   UIKitCore                           0x00000001133703da -[UIControl _sendActionsForEvents:withEvent:] + 450
8   UIKitCore                           0x000000011336f31e -[UIControl touchesEnded:withEvent:] + 583
9   UIKitCore                           0x00000001139700a4 -[UIWindow _sendTouchesForEvent:] + 2729
10  UIKitCore                           0x00000001139717a0 -[UIWindow sendEvent:] + 4080
11  UIKitCore                           0x000000011394f394 -[UIApplication sendEvent:] + 352
12  UIKitCore                           0x0000000113a245a9 __dispatchPreprocessedEventFromEventQueue + 3054
13  UIKitCore                           0x0000000113a271cb __handleEventQueueInternal + 5948
14  CoreFoundation                      0x000000010eba1721 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
15  CoreFoundation                      0x000000010eba1054 __CFRunLoopDoSources0 + 436
16  CoreFoundation                      0x000000010eb9b63f __CFRunLoopRun + 1263
17  CoreFoundation                      0x000000010eb9ae11 CFRunLoopRunSpecific + 625
18  GraphicsServices                    0x000000011753a1dd GSEventRunModal + 62
19  UIKitCore                           0x000000011393381d UIApplicationMain + 140
20  test                                0x000000010bc6c077 main + 71
21  libdyld.dylib                       0x0000000110ca2575 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

Я получаю эту же ошибку, когда у меня есть постоянный переход к другим страницам вПриложение тоже не просто раскручивают.Я удостоверяюсь, что эти сегменты имеют свои идентификаторы, правильно написанные в разделе раскадровки.

Я также пробовал другие методы, которые я видел, где я попадаю в контроллер корневого представления, но похоже, что мой контроллер корневого представлениядомашний экран, а не заставка (я полагаю, это связано с тем, что они являются модальными контроллерами вида?).Это происходит здесь без ошибок.

self.navigationController?.popToRootViewController(animated: true)

и

UIApplication.shared.keyWindow?.rootViewController?.navigationController?.popToRootViewController(animated: true)

Я не хочу вызывать 2 segues, чтобы попасть на заставку, потому что я хотел бы развернуть напрямуюна заставку, когда пользователь не видит ничего промежуточного - как я могу это сделать?

...