1

私は以下のようなナビゲーションを持っています。

--initial-->navigation controller--root-->firstViewController--push-->secondViewController--modal-->navigation controller--root-->thirdViewController.

ここに画像の説明を入力

そして、thirdViewController から SecondViewController に巻き戻そうとしています。そして、場合によってはアンワインド関数で、To FirstViewController にポップします。

@IBAction func  unwind (segue:UIStoryboardSegue){
    self.navigationController?.popViewControllerAnimated(false)
}

しかし、それはクラッシュしています。

実行時にナビゲーションコントローラーを見つけることで問題を解決できますが、動的な解決策ではありません。私は論理をほどくために理解しようとしています。

セグエの巻き戻しなどについて見逃していますか?

2015-09-15 11:01:42.439 Test[65578:1323530] *** Assertion failure in -[UINavigationController popToViewController:transition:], /SourceCache/UIKit_Sim/UIKit-3347.44.2/UINavigationController.m:5652
2015-09-15 11:01:42.443 Test[65578:1323530] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to get popped view controller.'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000101daec65 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x0000000103919bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000101daeaca +[NSException raise:format:arguments:] + 106
    3   Foundation                          0x000000010224b98f -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195
    4   UIKit                               0x00000001027b3951 __57-[UINavigationController popToViewController:transition:]_block_invoke + 924
    5   UIKit                               0x0000000102789188 +[UIViewController _performWithoutDeferringTransitions:] + 101
    6   UIKit                               0x00000001027b3511 -[UINavigationController popToViewController:transition:] + 616
    7   UIKit                               0x00000001027aa82b __90-[UINavigationController segueForUnwindingToViewController:fromViewController:identifier:]_block_invoke + 102
    8   UIKit                               0x000000010264ed62 -[UIApplication sendAction:to:from:forEvent:] + 75
    9   UIKit                               0x000000010264ed62 -[UIApplication sendAction:to:from:forEvent:] + 75
    10  UIKit                               0x000000010276050a -[UIControl _sendActionsForEvents:withEvent:] + 467
    11  UIKit                               0x000000010275f8d9 -[UIControl touchesEnded:withEvent:] + 522
    12  UIKit                               0x000000010269b958 -[UIWindow _sendTouchesForEvent:] + 735
    13  UIKit                               0x000000010269c282 -[UIWindow sendEvent:] + 682
    14  UIKit                               0x0000000102662541 -[UIApplication sendEvent:] + 246
    15  UIKit                               0x000000010266fcdc _UIApplicationHandleEventFromQueueEvent + 18265
    16  UIKit                               0x000000010264a59c _UIApplicationHandleEventQueue + 2066
    17  CoreFoundation                      0x0000000101ce2431 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    18  CoreFoundation                      0x0000000101cd82fd __CFRunLoopDoSources0 + 269
    19  CoreFoundation                      0x0000000101cd7934 __CFRunLoopRun + 868
    20  CoreFoundation                      0x0000000101cd7366 CFRunLoopRunSpecific + 470
    21  GraphicsServices                    0x0000000105d82a3e GSEventRunModal + 161
    22  UIKit                               0x000000010264d8c0 UIApplicationMain + 1282
    23  Test                                0x0000000101bc7487 main + 135
    24  libdyld.dylib                       0x000000010404f145 start + 1
)
4

0 に答える 0