To push the user to the iTunes store for desired items I'm using the following function:
func openStoreProductWithiTunesItemIdentifier(identifier: String) { let storeViewController = SKStoreProductViewController() storeViewController.delegate = self let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier, SKStoreProductParameterAffiliateToken : ITUNES_AFFILIATE_ID] storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in if loaded { self!.navigationController?.pushViewControllerWithHandler(storeViewController, animated: true) { LilithProgressHUD.hide() // custom progress hud } } } } extension UINavigationController { func pushViewControllerWithHandler(viewController: UIViewController, animated: Bool, completion: Void -> Void) { CATransaction.begin() CATransaction.setCompletionBlock(completion) pushViewController(viewController, animated: animated) CATransaction.commit() } }
Called by
let trackID = "thisIsMyTrackID" openStoreProductWithiTunesItemIdentifier(trackID)
This results in
If I'm instead of:
self!.navigationController?.pushViewControllerWithHandler(storeViewController, animated: true) { LilithProgressHUD.hide() // custom progress hud }
Using:
self?.presentViewController(storeViewController, animated: true, completion: { LilithProgressHUD.hide() // custom progress hud })
, it is working. But I need the controller to push within the navigationController
to fit the rest of the views and animations. What am I missing? Help is very appreciated.
Backtrace as requested:
(lldb) bt all * thread #1: tid = 0x9bb48, 0x000000018fcac524 libobjc.A.dylib`objc_exception_throw, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2 frame #0: 0x000000018fcac524 libobjc.A.dylib`objc_exception_throw frame #1: 0x0000000191274108 CoreFoundation`+[NSException raise:format:] + 116 frame #2: 0x000000019dca04d0 StoreKit`-[SKStoreProductViewController _throwUnsupportedPresentationException] + 76 frame #3: 0x000000019dc9ed24 StoreKit`-[SKStoreProductViewController willMoveToParentViewController:] + 108 frame #4: 0x0000000197159174 UIKit`-[UIViewController _addChildViewController:performHierarchyCheck:notifyWillMove:] + 568 frame #5: 0x000000019714f580 UIKit`-[UINavigationController pushViewController:transition:forceImmediate:] + 1220 frame #6: 0x000000019714f06c UIKit`-[UINavigationController pushViewController:animated:] + 652 * frame #7: 0x00000001000a32f4 cya`UINavigationController.pushViewControllerWithHandler(viewController=0x00000001028ae9c0, animated=true, completion=0x00000001000a35c4 cya`partial apply forwarder for reabstraction thunk helper from @callee_unowned @convention(block) () -> (@unowned ()) to @callee_owned () -> (@unowned ()) with unmangled suffix ".16" at UINavigationControllerExtensions.swift, self=0x0000000103844600) -> ()) -> () + 504 at UINavigationControllerExtensions.swift:24 frame #8: 0x00000001000a3578 cya`@objc UINavigationController.pushViewControllerWithHandler(UIViewController, animated : Bool, completion : () -> ()) -> () + 196 at UINavigationControllerExtensions.swift:0 frame #9: 0x00000001001b04f4 cya`DJProfileAsUserMusicTableVC.(loaded=true, error=nil, self=0x0000000102a358d0, storeViewController=0x00000001028ae9c0) -> ()).(closure #1) + 416 at DJProfileAsUserMusicTableVC.swift:697 frame #10: 0x00000001001b0654 cya`thunk + 56 at DJProfileAsUserMusicTableVC.swift:0 frame #11: 0x00000001001b0714 cya`thunk + 36 at DJProfileAsUserMusicTableVC.swift:0 frame #12: 0x00000001001b0804 cya`thunk + 80 at DJProfileAsUserMusicTableVC.swift:0 frame #13: 0x000000019dc9fb84 StoreKit`-[SKStoreProductViewController _loadDidFinishWithResult:error:] + 92 frame #14: 0x000000019127a160 CoreFoundation`__invoking___ + 144 frame #15: 0x000000019116dc3c CoreFoundation`-[NSInvocation invoke] + 284 frame #16: 0x0000000192e158bc FrontBoardServices`__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36 frame #17: 0x0000000192e15728 FrontBoardServices`-[FBSSerialQueue _performNext] + 176 frame #18: 0x0000000192e15ad0 FrontBoardServices`-[FBSSerialQueue _performNextFromRunLoopSource] + 56 frame #19: 0x0000000191222278 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24 frame #20: 0x0000000191221bc0 CoreFoundation`__CFRunLoopDoSources0 + 524 frame #21: 0x000000019121f7c0 CoreFoundation`__CFRunLoopRun + 804 frame #22: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #23: 0x0000000192bd1198 GraphicsServices`GSEventRunModal + 180 frame #24: 0x0000000197128628 UIKit`-[UIApplication _run] + 684 frame #25: 0x0000000197123360 UIKit`UIApplicationMain + 208 frame #26: 0x000000010020c08c cya`main + 144 at AppDelegate.swift:19 frame #27: 0x00000001901305b8 libdyld.dylib`start + 4 thread #3: tid = 0x9bbc9, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x0000000190305188 libsystem_pthread.dylib`_pthread_wqthread + 968 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 thread #4: tid = 0x9bbca, 0x0000000190304db0 libsystem_pthread.dylib`start_wqthread frame #0: 0x0000000190304db0 libsystem_pthread.dylib`start_wqthread thread #7: tid = 0x9bbdc, 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8, name = 'gputools.smt_poll.0x17403cde0' frame #0: 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8 frame #1: 0x000000019016027c libsystem_c.dylib`nanosleep + 212 frame #2: 0x000000019016019c libsystem_c.dylib`usleep + 64 frame #3: 0x00000001025adeb0 GPUToolsCore`smt_poll_thread_entry(void*) + 136 frame #4: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #5: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #6: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #8: tid = 0x9bbef, 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8, name = 'gputools.smt_poll.0x170220020' frame #0: 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8 frame #1: 0x000000019016027c libsystem_c.dylib`nanosleep + 212 frame #2: 0x000000019016019c libsystem_c.dylib`usleep + 64 frame #3: 0x00000001025adeb0 GPUToolsCore`smt_poll_thread_entry(void*) + 136 frame #4: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #5: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #6: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #9: tid = 0x9bbf4, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.uikit.eventfetch-thread' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x0000000191c5cb1c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 frame #6: 0x0000000191c7d60c Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 96 frame #7: 0x0000000197a9dc7c UIKit`-[UIEventFetcher threadMain] + 136 frame #8: 0x0000000191d5a50c Foundation`__NSThread__start__ + 1024 frame #9: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #10: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #11: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #12: tid = 0x9bbfb, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.NSURLConnectionLoader' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x000000019193bcec CFNetwork`+[NSURLConnection(Loader) _resourceLoadLoop:] + 336 frame #6: 0x0000000191d5a50c Foundation`__NSThread__start__ + 1024 frame #7: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #8: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #9: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #14: tid = 0x9bbfd, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'AVAudioSession Notify Thread' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x00000001aa8f1fe8 AVFAudio`GenericRunLoopThread::Entry(void*) + 164 frame #6: 0x00000001aa917f14 AVFAudio`CAPThread::Entry(CAPThread*) + 84 frame #7: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #8: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #9: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #17: tid = 0x9bc0f, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.squareup.SocketRocket.NetworkThread' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x0000000191c5cb1c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 frame #6: 0x00000001003f57ec cya`-[_FSRRunLoopThread main](self=0x00000001740918f0, _cmd=<unavailable>) + 252 at FSRWebSocket.m:1838 frame #7: 0x0000000191d5a50c Foundation`__NSThread__start__ + 1024 frame #8: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #9: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #10: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #18: tid = 0x9bc21, 0x000000019024223c libsystem_kernel.dylib`__select + 8, name = 'com.apple.CFSocket.private' frame #0: 0x000000019024223c libsystem_kernel.dylib`__select + 8 frame #1: 0x0000000191228b84 CoreFoundation`__CFSocketManager + 640 frame #2: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #3: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #4: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #19: tid = 0x9bc70, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x000000019030536c libsystem_pthread.dylib`_pthread_wqthread + 1452 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 thread #20: tid = 0x9bc77, 0x0000000190304db0 libsystem_pthread.dylib`start_wqthread frame #0: 0x0000000190304db0 libsystem_pthread.dylib`start_wqthread thread #21: tid = 0x9bc78, 0x0000000000000000 frame #0: 0x0000000000000000 (lldb)
Backtrace without exception breakpoint:
(lldb) bt all warning: could not load any Objective-C class information. This will significantly reduce the quality of type information available. * thread #1: tid = 0x9c221, 0x0000000190242014 libsystem_kernel.dylib`__pthread_kill + 8, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x0000000190242014 libsystem_kernel.dylib`__pthread_kill + 8 frame #1: 0x0000000190309460 libsystem_pthread.dylib`pthread_kill + 112 frame #2: 0x00000001901b63f4 libsystem_c.dylib`abort + 140 frame #3: 0x000000018fc812d4 libc++abi.dylib`abort_message + 132 frame #4: 0x000000018fc9ecc0 libc++abi.dylib`default_terminate_handler() + 304 frame #5: 0x000000018fcac844 libobjc.A.dylib`_objc_terminate() + 124 frame #6: 0x000000018fcac844 libobjc.A.dylib`_objc_terminate() + 124 frame #7: 0x000000018fc9b66c libc++abi.dylib`std::__terminate(void (*)()) + 16 frame #8: 0x000000018fc9b234 libc++abi.dylib`__cxa_rethrow + 144 frame #9: 0x000000018fcac71c libobjc.A.dylib`objc_exception_rethrow + 44 frame #10: 0x000000019114e0bc CoreFoundation`CFRunLoopRunSpecific + 560 frame #11: 0x0000000192bd1198 GraphicsServices`GSEventRunModal + 180 frame #12: 0x0000000197128628 UIKit`-[UIApplication _run] + 684 frame #13: 0x0000000197123360 UIKit`UIApplicationMain + 208 * frame #14: 0x00000001001e408c cya`main + 144 at AppDelegate.swift:19 frame #15: 0x00000001901305b8 libdyld.dylib`start + 4 thread #5: tid = 0x9c29d, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x000000019030536c libsystem_pthread.dylib`_pthread_wqthread + 1452 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 thread #7: tid = 0x9c2a7, 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8, name = 'gputools.smt_poll.0x174036a80' frame #0: 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8 frame #1: 0x000000019016027c libsystem_c.dylib`nanosleep + 212 frame #2: 0x000000019016019c libsystem_c.dylib`usleep + 64 frame #3: 0x000000010257deb0 GPUToolsCore`smt_poll_thread_entry(void*) + 136 frame #4: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #5: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #6: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #8: tid = 0x9c2b2, 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8, name = 'gputools.smt_poll.0x1740366c0' frame #0: 0x0000000190242314 libsystem_kernel.dylib`__semwait_signal + 8 frame #1: 0x000000019016027c libsystem_c.dylib`nanosleep + 212 frame #2: 0x000000019016019c libsystem_c.dylib`usleep + 64 frame #3: 0x000000010257deb0 GPUToolsCore`smt_poll_thread_entry(void*) + 136 frame #4: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #5: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #6: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #9: tid = 0x9c2b6, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.uikit.eventfetch-thread' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x0000000191c5cb1c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 frame #6: 0x0000000191c7d60c Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 96 frame #7: 0x0000000197a9dc7c UIKit`-[UIEventFetcher threadMain] + 136 frame #8: 0x0000000191d5a50c Foundation`__NSThread__start__ + 1024 frame #9: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #10: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #11: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #10: tid = 0x9c2b7, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x000000019030536c libsystem_pthread.dylib`_pthread_wqthread + 1452 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 thread #12: tid = 0x9c2bf, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.NSURLConnectionLoader' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x000000019193bcec CFNetwork`+[NSURLConnection(Loader) _resourceLoadLoop:] + 336 frame #6: 0x0000000191d5a50c Foundation`__NSThread__start__ + 1024 frame #7: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #8: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #9: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #14: tid = 0x9c2c3, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'AVAudioSession Notify Thread' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x00000001aa8f1fe8 AVFAudio`GenericRunLoopThread::Entry(void*) + 164 frame #6: 0x00000001aa917f14 AVFAudio`CAPThread::Entry(CAPThread*) + 84 frame #7: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #8: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #9: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #15: tid = 0x9c2cc, 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.squareup.SocketRocket.NetworkThread' frame #0: 0x000000019022416c libsystem_kernel.dylib`mach_msg_trap + 8 frame #1: 0x0000000190223fdc libsystem_kernel.dylib`mach_msg + 72 frame #2: 0x0000000191221cec CoreFoundation`__CFRunLoopServiceMachPort + 192 frame #3: 0x000000019121f908 CoreFoundation`__CFRunLoopRun + 1132 frame #4: 0x000000019114e048 CoreFoundation`CFRunLoopRunSpecific + 444 frame #5: 0x0000000191c5cb1c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 frame #6: 0x00000001003cd7ec cya`-[_FSRRunLoopThread main](self=0x0000000170097c00, _cmd=<unavailable>) + 252 at FSRWebSocket.m:1838 frame #7: 0x0000000191d5a50c Foundation`__NSThread__start__ + 1024 frame #8: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #9: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #10: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #16: tid = 0x9c2d8, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x000000019030536c libsystem_pthread.dylib`_pthread_wqthread + 1452 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 thread #18: tid = 0x9c2e8, 0x000000019024223c libsystem_kernel.dylib`__select + 8, name = 'com.apple.CFSocket.private' frame #0: 0x000000019024223c libsystem_kernel.dylib`__select + 8 frame #1: 0x0000000191228b84 CoreFoundation`__CFSocketManager + 640 frame #2: 0x0000000190307860 libsystem_pthread.dylib`_pthread_body + 240 frame #3: 0x0000000190307770 libsystem_pthread.dylib`_pthread_start + 284 frame #4: 0x0000000190304dbc libsystem_pthread.dylib`thread_start + 4 thread #19: tid = 0x9c355, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x0000000190305188 libsystem_pthread.dylib`_pthread_wqthread + 968 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 thread #20: tid = 0x9c35f, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x000000019030536c libsystem_pthread.dylib`_pthread_wqthread + 1452 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 thread #21: tid = 0x9c360, 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #0: 0x0000000190242a88 libsystem_kernel.dylib`__workq_kernreturn + 8 frame #1: 0x0000000190305188 libsystem_pthread.dylib`_pthread_wqthread + 968 frame #2: 0x0000000190304db4 libsystem_pthread.dylib`start_wqthread + 4 (lldb)
The exception and stack trace tell you that the store view controller isn't happy about being pushed into a nav stack. Your test shows it is happy being presented. From the documentation:
present the view controller modally from another view controller in your app
So, you should present it modally.
While it's possible that you could perhaps make it work in some other way it's likely to break in the future if you don't follow the (inconvenient) guidelines.