iOS 13 waiting room modal issue when swiping

Description
The waiting room in iOS 13 is presented modally using the new default behavior which means it can be swiped away without the user having to tap the “Leave” button. If the user does this there is no way to join a new waiting room (as far as I can tell).

Which version?
v5.0.24433.0616

To Reproduce(If applicable)
Join a waiting room on iOS 13
Swipe the waiting room down
Attempt to join a new waiting room

Smartphone (please complete the following information):

  • Device: iPhone
  • OS: iOS 13+

Additional context
For now I’ve swizzled the waiting room to be full screen but I’m not sure if that’s going to cause problems or if there is a better solution I’m missing.

class Zoom {

    static func swizzleWaitingRoom() {
        if let klass = NSClassFromString("ZPMeetingWaitViewController") {
            guard let original = class_getInstanceMethod(klass, #selector(getter: UIViewController.modalPresentationStyle)), let replacement = class_getInstanceMethod(self, #selector(getter:Zoom.modalPresentationStyle))
                else { return }
            method_exchangeImplementations(original, replacement)
        } else {
            print("NO CLASS NAMED `ZPMeetingWaitViewController`")
        }
    }

    @objc var modalPresentationStyle: UIModalPresentationStyle {
        .fullScreen
    }

}

Hey @jim.power

Thanks for using the dev forum, and thank you for the detailed post!

Unfortunately, this is a known issue. We apologize for that, as it is not a pleasant experience for the devs nor users to deal with this dismissal not being acknowledged. As for the swizzle question, the behavior is unknown when swizzling the entire class.

In the meantime, if you implement a CustomMeetingUI, you can design your own waiting room UI that can have deeper access into behavior and design.

I will make sure to keep you updated on this issue!

Thanks!
Michael

Thanks Michael -

We’ll test the app with the swizzling approach and if we don’t see any major issues probably ship this way, as our release target does not allow for creating a custom meeting UI. I do appreciate the response.

@jim.power

Thank you for your patience! I apologize for the inconvenience this causes.

Michael

The Swizzling does work but in iPad Pro 2020 it made the leave button not working anymore. Guess custom UI is the best bet.

Thanks for the report Sydney.

That said, I just tested on a 2020 iPad Pro running iOS 14.01 and the solution we came up with worked (that is, the Leave button functioned properly), though we did adjust the swizzling to only affect ZMNavigationController

2 Likes