【发布时间】:2015-01-29 20:33:14
【问题描述】:
我在我的MainViewController 中创建了一个弹出框,当使用UIPopoverPresentationController 触摸某个按钮并设置它的代表时,就像它在 WWDC 2014 中显示的那样,通过以下方式:
MainViewController.swift
class MainViewController : UIViewController, UIPopoverPresentationControllerDelegate {
@IBAction func showPopover(sender: AnyObject) {
var popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("PopOverViewController") as UIViewController
popoverContent.modalPresentationStyle = UIModalPresentationStyle.Popover
var popover = popoverContent.popoverPresentationController
popoverContent.preferredContentSize = CGSizeMake(250, 419)
popover!.delegate = self
popover!.sourceView = self.view
popover!.sourceRect = CGRectMake(180,85,0,0)
self.presentViewController(popoverContent, animated: true, completion: nil)
}
}
弹出框里面有一个视图,当使用点击手势识别器单击视图时,我使用模态转场显示LastViewController,模态转场是通过界面生成器创建的,而不是在代码中使用操作来呈现另一个LastViewController
一旦LastViewController 被关闭,我又回到MainViewController,弹出框仍然打开。
PopOverController里面只有默认代码而已。
LastViewController.swift
@IBAction func dismissVIew(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
上面的代码用于在触摸内部按钮后关闭LastViewController。
故事板
一旦另一个LastViewController 可见,或者在另一个LastViewController 应该打开之前,我如何关闭弹出框?
提前致谢
【问题讨论】:
-
向我展示你为函数编写的代码,当用户点击弹出框时调用该函数。
-
@Jageen 我没有创建显示模式的动作,我使用 Interface Builder 完成了
-
@Jageen 我将用我使用的所有代码更新我的问题
-
我已经在这里回答了同样的问题stackoverflow.com/questions/27481756/…
标签: swift ios8 uipopovercontroller