如何在 swift 中关闭来自父级的弹出窗口
How to dismiss a popover from parent in swift
我是 iOS 和 swift 的新手。我正在尝试显示一个弹出窗口。我已经设法显示了一个弹出窗口,但问题是我需要将其从父项中关闭。
我可以使用此代码从 ViewController 本身关闭弹出窗口
self.dismissViewControllerAnimated(true, completion: nil)
但我需要从父视图控制器执行此操作。
到目前为止我已经这样做了。单击按钮
performSegueWithIdentifier("bookingPopOverSegue", 发件人: self)
关于 prepareForSegue,
if segue.identifier == "bookingPopOverSegue" {
var bookingViewController = segue.destinationViewController as! BookingViewController
var passthroughViews: [AnyObject] = self.timeSlotButtons
passthroughViews.append(self.scrollView)
bookingViewController.popoverPresentationController?.passthroughViews = passthroughViews
}
知道怎么做吗?任何帮助将不胜感激..
只需使用父级的 presentedViewController 属性 调用 dismiss 方法,例如 ....
self.presentedViewController.dismissViewControllerAnimated(true, completion: nil)
为Swift3.0
self.presentedViewController?.dismiss(animated: true, completion: nil)
如果你的 popover controller 是 public (例如作为你的子视图控制器的 属性),那么就使用它:
// 'self' is the parent
// 'popoverController' is the name of the property
self.childViewController.popoverController.dismissPopoverAnimated(<true or false>)
换句话说,问题不在于弹出窗口,而是它在父项中的可见性。
我是 iOS 和 swift 的新手。我正在尝试显示一个弹出窗口。我已经设法显示了一个弹出窗口,但问题是我需要将其从父项中关闭。
我可以使用此代码从 ViewController 本身关闭弹出窗口
self.dismissViewControllerAnimated(true, completion: nil)
但我需要从父视图控制器执行此操作。
到目前为止我已经这样做了。单击按钮 performSegueWithIdentifier("bookingPopOverSegue", 发件人: self)
关于 prepareForSegue,
if segue.identifier == "bookingPopOverSegue" {
var bookingViewController = segue.destinationViewController as! BookingViewController
var passthroughViews: [AnyObject] = self.timeSlotButtons
passthroughViews.append(self.scrollView)
bookingViewController.popoverPresentationController?.passthroughViews = passthroughViews
}
知道怎么做吗?任何帮助将不胜感激..
只需使用父级的 presentedViewController 属性 调用 dismiss 方法,例如 ....
self.presentedViewController.dismissViewControllerAnimated(true, completion: nil)
为Swift3.0
self.presentedViewController?.dismiss(animated: true, completion: nil)
如果你的 popover controller 是 public (例如作为你的子视图控制器的 属性),那么就使用它:
// 'self' is the parent
// 'popoverController' is the name of the property
self.childViewController.popoverController.dismissPopoverAnimated(<true or false>)
换句话说,问题不在于弹出窗口,而是它在父项中的可见性。