最终效果

步骤
设置Segue
按下control键,拖拽以连接两个ViewController,选择 “Present As Popover”;
设置Segue的Identifier为”PopoverSegue”

(为了直观讲解,我们把绿色的叫GreenViewController,蓝色的叫BlueViewController)
调整BlueViewController的尺寸
Storyboard中选中BlueViewController。
为了方便观察尺寸的变化,我们先把“Attributes inspector > Simulated Metrics > Size”选为Freeform.
而后,在”Size inspector ”下,设置Width,Height属性(这里的设置不会影响到运行时的尺寸),并观察Storyboard,以找到合适的尺寸。
观察发现采用width=100,height=50的尺寸比较合适。
“Attributes inspector > View Controller”下,勾选“Use preferred Explicit Size”,并输入width、height。在程序运行的时候,该ViewController就会以这个尺寸显示。
GreenViewController实现UIPopoverPresentationControllerDelegate
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None
}
重写GreenViewController的prepareForSegue方法
在prepareForSegue方法中获取到BlueViewController实例,并进行属性设置
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == “PopoverSegue” {
let popoverContent = segue.destinationViewController
popoverContent.modalPresentationStyle = .Popover
let popover = popoverContent.popoverPresentationController!
popover.delegate = self
}
}