CarouselView: [IOS] Crash : NSInternalInconsistencyException Reason: No view controller managing visible view

I was installed plugin. When I go to the page, back and go to new page (any page has a scrollview). It crash. I got the exception. How to fix it ? Thank you

`2017-12-21 14:49:12.339 CTWCCare.iOS[87332:1284990] pageController.ChildViewControllers count = 3 2017-12-21 14:49:12.610 CTWCCare.iOS[87332:1284990] *** Assertion failure in -[UIPageViewController queuingScrollView:didEndManualScroll:toRevealView:direction:animated:didFinish:didComplete:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3698.33.6/UIPageViewController.m:2067 Unhandled Exception:

Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: No view controller managing visible view <Xamarin_Forms_Platform_iOS_Platform_DefaultRenderer: 0x7fb746924150; frame = (0 0; 375 100); autoresize = LM+W+RM+TM+H+BM; layer = <CALayer: 0x60800162d840>> Native stack trace: 0 CoreFoundation 0x0000000118b7112b __exceptionPreprocess + 171 1 libobjc.A.dylib 0x0000000119ab1f41 objc_exception_throw + 48 2 CoreFoundation 0x0000000118b762f2 +[NSException raise:format:arguments:] + 98 3 Foundation 0x000000010edf7d69 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193 4 UIKit 0x000000010bccd264 -[UIPageViewController queuingScrollView:didEndManualScroll:toRevealView:direction:animated:didFinish:didComplete:] + 1156 5 UIKit 0x000000010bdef490 -[_UIQueuingScrollView _notifyDelegateDidEndManualScroll:toRevealView:direction:animated:didFinish:didComplete:] + 139 6 UIKit 0x000000010bdeeac0 __78-[_UIQueuingScrollView _enqueueAnimatedScrollInDirection:withView:completion:]_block_invoke + 69 7 UIKit 0x000000010bdea854 -[_UITransitionState cleanupWithFinishedState:completedState:] + 35 8 UIKit 0x000000010bdedd6e -[_UIQueuingScrollView _cleanUpCompletionState:didFinish:didComplete:] + 96 9 UIKit 0x000000010bdf14c0 -[_UIQueuingScrollView _didEndScroll:] + 337 10 UIKit 0x000000010bdebe40 -[_UIQueuingScrollView _scrollViewAnimationEnded:finished:] + 104 11 UIKit 0x000000010b4bac53 -[UIAnimator stopAnimation:] + 422 12 UIKit 0x000000010b4bb3a1 -[UIAnimator _advanceAnimationsOfType:withTimestamp:] + 282 13 QuartzCore 0x00000001110ec2b8 _ZN2CA7Display11DisplayLink14dispatch_itemsEyyy + 684 14 QuartzCore 0x000000011122c894 ZL22display_timer_callbackP12__CFMachPortPvlS1 + 248 15 CoreFoundation 0x0000000118b00899 __CFMachPortPerform + 169 16 CoreFoundation 0x0000000118b007d9 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 41 17 CoreFoundation 0x0000000118b00741 __CFRunLoopDoSource1 + 465 18 CoreFoundation 0x0000000118af8524 __CFRunLoopRun + 2596 19 CoreFoundation 0x0000000118af7889 CFRunLoopRunSpecific + 409 20 GraphicsServices 0x000000011b49d9c6 GSEventRunModal + 62 21 UIKit 0x000000010b3295d6 UIApplicationMain + 159 22 ??? 0x0000000138544ea8 0x0 + 5240016552 23 ??? 0x0000000138544ad3 0x0 + 5240015571`

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 41 (11 by maintainers)

Most upvoted comments

Hi @alexrainman ,

Do you have any ETA to include ‘IsSwiping’ in the latest release?

I have exactly same issue with this plugin. We want to detect user’s touch event while timer callback is in operation.

Regards, Jay

Facing a similar issue, our solution is to load/initialize/update context and then assign the bindingcontext. See snippet below:

            var context = Locator.Instance.Get<HistoryItemViewModel>();
            var tag = (DeviceAsset)parameter[0];
            var position = (int)parameter[1];
            context.Init(tag, position);
            BindingContext = context;

I am adding a new property named IsSwiping to be used in cases like this. Let’s say you want to change ItemsSource or autoplay with a timer. You can check if the carousel IsSwiping before trying to so this operations.