爲了詳細說明這一點了,如果你要的是酥料餅上你的iPad,但你的iPhone上有一個關閉按鈕的模式表,那麼這就是你的方式。
在Xcode的6.3分鏡,你鉤了一個視圖控制器和指定SEGUE爲「存在酥料餅」
此代碼在塞格斯到酥料餅的,而不是在酥料餅本身的視圖控制器應該去:
首先設置好酥料餅的委託:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "myPopoverSegueName") {
let vc = segue.destinationViewController
vc.popoverPresentationController?.delegate = self
return
}
}
然後添加委託擴展和動態創建的導航控制器/關閉按鈕:
extension myViewController: UIPopoverPresentationControllerDelegate {
func presentationController(controller: UIPresentationController, viewControllerForAdaptivePresentationStyle style: UIModalPresentationStyle) -> UIViewController? {
let btnDone = UIBarButtonItem(title: "Done", style: .Done, target: self, action: "dismiss")
let nav = UINavigationController(rootViewController: controller.presentedViewController)
nav.topViewController.navigationItem.leftBarButtonItem = btnDone
return nav
}
}
然後添加你的解僱功能,你應該是好去:
func dismiss() {
self.dismissViewControllerAnimated(true, completion: nil)
}
不,這是行不通的。到prepareForSegue被調用時,源視圖控制器和目標視圖控制器已經被定義;您無法通過將其嵌入到導航控制器中來更改目標視圖控制器。 – rdelmar