Я создал всплывающее окно внутри моего 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
должен быть открыт?
Заранее спасибо