EXC_BAD_ACCESS KERN_PROTECTION_FAILURE caused by 3D touch

There is a bug report form Fabric which says
`-[myViewController previewingContext:commitViewController:]`
`EXC_BAD_ACCESS KERN_PROTECTION_FAILURE 0x000000016d71fff0`

```
Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x210ac64b4 lookUpImpOrForward + 4
1  libobjc.A.dylib                0x210aba1e0 class_getMethodImplementation + 40
2  libobjc.A.dylib                0x210ad47ac objc_loadWeakRetained + 320
3  UIKitCore                      0x23d8c6ecc -[UIViewController presentedViewController] + 64
4  UIKitCore                      0x23d8abbbc -[UIViewController _canBecomeDeepestUnambiguousResponder] + 32
5  UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
6  UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
7  UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
8  UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
9  UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
10 UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
11 UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
12 UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
13 UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
14 UIKitCore                      0x23d8abbd4 -[UIViewController _canBecomeDeepestUnambiguousResponder] + 56
15 UIKitCore                      0x23de9e5f8 -[UIWindow _deepestUnambiguousResponder] + 64
16 UIKitCore                      0x23de72b68 -[UIApplication _targetResponderForKeyCommandsForResponder:] + 120
17 UIKitCore                      0x23de72bf8 -[UIApplication _keyCommandsForResponder:] + 24
18 UIKitCore                      0x23de72c98 -[UIApplication _updateSerializableKeyCommandsForResponder:] + 84
19 UIKitCore                      0x23d8b2a7c -[UIViewController _addChildViewController:performHierarchyCheck:notifyWillMove:] + 544
20 UIKitCore                      0x23d822d28 -[UINavigationController pushViewController:transition:forceImmediate:] + 1088
21 UIKitCore                      0x23d822784 -[UINavigationController pushViewController:animated:] + 664
22 RakutenCheck                   0x1025ee848 -[myViewController previewingContext:commitViewController:] (myViewController.m:585)
23 UIKitCore                      0x23dd8f358 -[_UIViewControllerPreviewingContext previewInteractionController:commitViewController:] + 160
24 UIKitCore                      0x23ddc1b78 __59-[_UIPreviewInteractionController commitInteractivePreview]_block_invoke + 116
25 UIKitCore                      0x23dda40d0 __91-[_UIPreviewInteractionCommitTransition performTransitionWithPresentationBlock:completion:]_block_invoke_2.76 + 28
26 UIKitCore                      0x23d8bd0ec +[UIViewController _performWithoutDeferringTransitions:] + 112
27 UIKitCore                      0x23dda408c __91-[_UIPreviewInteractionCommitTransition performTransitionWithPresentationBlock:completion:]_block_invoke.74 + 116
28 UIKitCore                      0x23d7dbdb0 -[UIPresentationController transitionDidFinish:] + 1320
29 UIKitCore                      0x23d7dfa2c __56-[UIPresentationController runTransitionForCurrentState]_block_invoke.425 + 188
30 UIKitCore                      0x23d8d75f8 -[_UIViewControllerTransitionContext completeTransition:] + 116
31 Foundation                     0x212354470 __NSFireDelayedPerform + 408
32 CoreFoundation                 0x2118728f4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
33 CoreFoundation                 0x211872624 __CFRunLoopDoTimer + 864
34 CoreFoundation                 0x211871e58 __CFRunLoopDoTimers + 248
35 CoreFoundation                 0x21186cda8 __CFRunLoopRun + 1844
36 CoreFoundation                 0x21186c354 CFRunLoopRunSpecific + 436
37 GraphicsServices               0x213a6c79c GSEventRunModal + 104
38 UIKitCore                      0x23de57b68 UIApplicationMain + 212
39 RakutenCheck                   0x10260d748 main (main.m:14)
40 libdyld.dylib                  0x2113328e0 start + 4
```

From the description we know the crash is related with 3D touch, after some trials and errors, we find out when we try to peek a vc with alert and then pop, the system will form an infinite loop and then cause a `EXC_BAD_ACCESS` crash.

In order to solve this, we need to distinguish whether the vc is created by peek mode or by normal situation.

There is a thread in stackoverflow talking about this:
https://stackoverflow.com/questions/33839752/how-to-check-if-the-view-controller-is-in-peek-mode-3d-touch-or-full-screen-mo

We eventually adopt the solution which checks navigationController is nil or not.
In our case, navigationController is nil in peek mode while navigationController exists in normal situation