如何像在Popoverview上一样在UIViewcontroller上显示UIViewController

时间:2015-07-23 09:32:29

标签: swift uiview uiviewcontroller modal-dialog

很难向我解释: - )

我已经拥有: 一个主要的UIViewController / UIView - >作品 我按下按钮后显示的第二个UIViewController / UIView - >工作,第二个UIViewController / UIView显示在屏幕的顶部,并具有完整的屏幕大小,所以我看不到第一个UIViewController / UIView

因为我意识到我的secondView只包含一些小组件,所以我想: 第二个显示第二个UIViewController / UIView就像一个popoverview,所以第二个是最小的,第一个仍然显示在后面。

我以为我可以做到以下几点:

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("Options") as! UIViewController

    vc.modalPresentationStyle = .Popover <<-- Make simply Modal ?

    self.presentViewController(vc, animated: true, completion: nil)

但仍然是第二个全屏显示。 有什么帮助吗?

更新我只是通过组合在互联网上找到的东西而不知道我到底在做什么来做到: - )

func showoptions(){

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewControllerWithIdentifier("Options") as! UIViewController

controller.modalPresentationStyle = UIModalPresentationStyle.Popover

let popoverPresentationController = controller.popoverPresentationController

// result is an optional (but should not be nil if modalPresentationStyle is popover)
if let _popoverPresentationController = popoverPresentationController {

    // set the view from which to pop up
    _popoverPresentationController.sourceView = self.view;
    _popoverPresentationController.sourceView.sizeToFit();

    // present (id iPhone it is a modal automatic full screen)
    self.presentViewController(controller, animated: true, completion: nil)
}

}

我现在唯一的问题是,模态视图的大小太小,有些组件不完全可见。

2 个答案:

答案 0 :(得分:1)

尝试更改controller.preferredContentSize以匹配您想要的尺寸

答案 1 :(得分:0)

你试过这个吗? iOS -- how do you control the size of a modal view controller?

要点: 1.不要使用UIViewcontroller。只使用UIView。 2.如果您加载模态视图控制器,将卸载第一个UIViewController视图。