1 Reply
      Latest reply on Nov 14, 2019 8:32 AM by jdnichollsc
      jumbopilot Level 1 Level 1 (0 points)

        Hi Guys,

         

        my app has a UIViewController transition style "Curl" with active animation between 2 UIViewController A (Initial ViewController) and B.

        The UIViewController transition from A -> B (Segue kind "Show (e.g. Push)") with transition style "Curl" works fine.

        Leaving UIViewController B by a storyboard segue (UIStoryboardSegue) of Kind "Show Detail e.g. (Replace)" with active animation to UIViewController A does not animate the UIViewController's View to roll back the Curl animation. Instead, the UIViewController A's view remains in a partial curl while the view A and its gesture recognition is still visible/active.

        Both UIViewConroller A and B are embedded in a UISplitViewController.

         

        Observed: The View A remains half-rolled/curled.

        Expected: The View A rolls back to its default layout/style, when leaving/replacing the View B by View A.

         

        Reproducibility: The issue is always reproducible and has been introduced with iOS13.x onwards. All UIViewController View transition worked fine with former iOS verisons (e.g. 12.x).

         

        I have posted a bug report via feedback assistant 4 weeks ago (Sep 28, 2019 at 8:12 AM – FB7331595 UISplitViewControlle freezes master view layout during animation), but there's no Apple response yet.

        I'm therefore turning this issue report to the developer forum.

         

        The application does not throw any exception or error.

         

        Any hint?

        • Re: UIViewController with transition style partial Curl won't roll back
          jdnichollsc Level 1 Level 1 (0 points)

          Same issue here testing with iOS 13, from previous iOS versions (11, 12, etc) it works as expected.

           

          Check the example:

           

          UINavigationController *safariHackVC = [[ModalSafariViewController alloc] initWithRootViewController:safariVC];
          [safariHackVC setNavigationBarHidden:true animated:false];
          safariHackVC.modalPresentationStyle = UIModalPresentationFullScreen;
          safariHackVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;
          safariHackVC.presentationController.delegate = self;
          
          #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
           if (@available(iOS 13.0, *)) {
           [safariHackVC setModalInPresentation:TRUE];
           }
          #endif
          
          [ctrl presentViewController:safariHackVC animated:animated completion:nil];

           

          You can see the code here: https://github.com/proyecto26/react-native-inappbrowser/blob/master/ios/RNInAppBrowser.m#L212

           

          Please, any help is really appreciated