Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 无法更改popover的大小_Swift_Uiviewcontroller_Presentviewcontroller - Fatal编程技术网

Swift 无法更改popover的大小

Swift 无法更改popover的大小,swift,uiviewcontroller,presentviewcontroller,Swift,Uiviewcontroller,Presentviewcontroller,我一直在尝试创建自己的代码,以及复制和粘贴示例,但我的popover似乎占据了整个屏幕。一般来说,我的代码如下所示,但正如我所说,我已经尝试了至少两个其他示例(一些示例使用CGSizeMake()、sourceRect和sourceView),结果总是一样的 Class TableView: UITableViewController, UIPopoverPresentationControllerDelegate { let popover = UIViewController()

我一直在尝试创建自己的代码,以及复制和粘贴示例,但我的popover似乎占据了整个屏幕。一般来说,我的代码如下所示,但正如我所说,我已经尝试了至少两个其他示例(一些示例使用CGSizeMake()、sourceRect和sourceView),结果总是一样的

Class TableView: UITableViewController, UIPopoverPresentationControllerDelegate {
    let popover = UIViewController()

    func someButton() {
        popover.modalPresentationStyle = .Popover
        popover.preferredContentSize = CGSize(1, 1)
        let menu = popover.popoverPresentationController
        menu!.delegate = self
        menu!.barButtonItem = someOtherCorrectButton
        self.presentViewController(popover, animated: true, completion: nil)
    }
}
有什么问题吗?

请尝试下面的代码

     popover.modalPresentationStyle = .Popover

     var popupHeight:CGFloat = 542
     let popupWidth = 400 as CGFloat
     popover.preferredContentSize = CGSizeMake(400,popupHeight)
     let window = UIApplication.sharedApplication().delegate!.window!!

    let screenSize: CGRect = window.bounds

    var XCordinate = (screenSize.width - popupWidth) / 2
    var YCordinate = (screenSize.height / 2) + 20

    let menu = popover.popoverPresentationController
    menu!.delegate = self
    menu!.sourceView = window            
    menu!.sourceRect = CGRect( x: XCordinate, y: YCordinate, width: 1, height: 1)
    self.presentViewController(popover, animated: true, completion: nil)

可能对您有用。

弹出窗口的大小是整个屏幕的边界。完全是黑色的。这适用于您?是的,但我的popover控制器类似于让popover=self.storyboard?.InstanceEviewController的标识符(“storyboardID”)为!YourViewController和我的popover显示在我的屏幕中央。是的,我已经在Main.storyboard上实例化了一个已经制作好的ViewController。它仍然占据了整个屏幕。您正在使用哪个设备?你试过用PopLight和popupWidth来改变吗?我在iPhone 6s上试过。我尝试了多种高度和宽度。在所有这些之前,我必须做一些设置,因为所有示例代码都给出相同的结果。我现在已经放弃了,我可能只能通过把我的笔记本电脑展示给知道他们在做什么的人来修复它。谢谢你的帮助。