iOS通过设备旋转显示和关闭模态视图控制器

时间:2018-08-23 15:40:56

标签: ios swift presentmodalviewcontroller device-orientation dismissviewcontroller

我已经在项目中编写了一段代码,通过发送UIDeviceOrientationDidChange通知来检测设备旋转,我在TradeViewController中,每当用户在横向旋转设备时,它应该在顶部显示一个模式视图控制器,称为(SwipingViewController),在纵向模式中,应该忽略该模态,然后返回到以前的控制器,该控制器被视为我的presentingViewController,名称为(TradeViewController),问题是此代码正常工作,但是在纵向旋转中,它不会在第二,它显示了混乱的顶部视图,并一起呈现了以前的视图,并且此过渡向用户显示,但效果并不理想,在此过渡中我可能会遗漏一些东西!只有tradeViewController嵌入在导航控制器中。我尝试以不同的方式(例如popViewController navigationController)呈现新视图,但是当用户以纵向旋转设备时,我无法获得清晰的过渡。这是代码

@objc func deviceOrientationDidChange(_ notification: Notification) {

    let storyboard = UIStoryboard(name: "Trade", bundle: nil)

    if UIDevice.current.orientation.isLandscape {

        if let swipingImageController: SwipingImageController = storyboard.instantiateViewController(withIdentifier: "SwipingImageController") as? SwipingImageController {

              self.present(swipingImageController, animated: true, completion: nil)

        }

    } else if let controller = presentedViewController as? SwipingImageController {

        controller.dismiss(animated: true, completion: nil)

    }

}    

0 个答案:

没有答案