以模态方式呈现视图控制器

JSh*_*rpp 5 modalviewcontroller ios swift

我在以模式方式使用视图控制器作为登录页面时遇到问题。我可以让控制器出现,但无法更改其全尺寸。

我试图在屏幕中央呈现带有褪色背景的弹出框。当我在视图之外单击时,弹出窗口应该关闭。

我浏览了整个网站的问题和答案,但没有找到对我有用的问题和答案。

这是我的代码:

import UIKit

class SignInView: UIViewController, UIPopoverPresentationControllerDelegate {


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "popoverSegue" {

    var popover = segue.destination as! SignInPopView
    popover.popoverPresentationController!.delegate = self
    popover.modalPresentationStyle = UIModalPresentationStyle.popover
    popover.preferredContentSize = CGSize(width: 375, height: 500)

    }

}
Run Code Online (Sandbox Code Playgroud)

JSh*_*rpp 0

我的解决方案是创建一个到新视图控制器的模态序列。将内容放置在视图控制器内的视图中,并将视图控制器的背景不透明度设置为所需的量。这一切都可以通过故事板来完成。

这样,当弹出视图控制器出现时,视图会以正确的大小出现在我想要的位置,并且前一个视图控制器在背景后面仍然可见。

我遇到的唯一问题是当我在视图之外单击时关闭模式弹出窗口。

该视频很有帮助:https://www.youtube.com/watch ?v=S5i8n_bqblE

编辑:此检测当前视图外部的任何点击提供了当您触摸视图外部时关闭模式的解决方案。