在执行 segue 的控制器中关闭执行的 UIViewController
Dismiss performed UIViewController within controller that performed segue
我有 UINavigationController
根 UICalendarViewController
。在应用程序 运行 的某个时间,在 UICalendarViewController
内,我使用 UICalendarEventViewController
执行 segue。我一直参考 'UICalendarViewController' 使用
var calendarViewController: UICalendarViewController!
稍后我可以访问 UICalendarViewController
,然后我需要关闭 UICalendarEventViewController。如何做到这一点?
我在 UICalendarViewController
里面创建了
var calendarEventViewController: UICalendarEventViewController?
但是当我尝试使用以下方式关闭它时:
calendarViewController.calendarEventViewController.dismissViewController(true, animated: true)
没用。
有时由于某种原因,我们没有我们期望的相同控制器实例。在我的例子中,我没有得到 UICalendarViewController
的相同实例。但是如果像我一样使用 UITabBarController 作为主导航,有一种方法可以做到这一点:
if let navigationController = viewControllersByIdentifier[PLContainerTabBarItemCalendar] as? UINavigationController {
navigationController.popToRootViewControllerAnimated(true)
}
然后我有一个电流控制器,我可以用可见的结果来管理它们。
我有 UINavigationController
根 UICalendarViewController
。在应用程序 运行 的某个时间,在 UICalendarViewController
内,我使用 UICalendarEventViewController
执行 segue。我一直参考 'UICalendarViewController' 使用
var calendarViewController: UICalendarViewController!
稍后我可以访问 UICalendarViewController
,然后我需要关闭 UICalendarEventViewController。如何做到这一点?
我在 UICalendarViewController
里面创建了
var calendarEventViewController: UICalendarEventViewController?
但是当我尝试使用以下方式关闭它时:
calendarViewController.calendarEventViewController.dismissViewController(true, animated: true)
没用。
有时由于某种原因,我们没有我们期望的相同控制器实例。在我的例子中,我没有得到 UICalendarViewController
的相同实例。但是如果像我一样使用 UITabBarController 作为主导航,有一种方法可以做到这一点:
if let navigationController = viewControllersByIdentifier[PLContainerTabBarItemCalendar] as? UINavigationController {
navigationController.popToRootViewControllerAnimated(true)
}
然后我有一个电流控制器,我可以用可见的结果来管理它们。