在我当前的项目中,我有一个RootViewcontroller
表示包含HolidayViewController
的navigation controller
。这个HolidayViewController
调用一个函数,该函数创建一个NEW窗口,以便用户可以登录到不同的服务。登录成功后,NEW窗口将被关闭,并显示以下代码(来自NEW窗口rootViewController(:
注:base
为HolidayViewController.view.window
rootViewController?.dismiss(animated: true, completion: {
if self.isKeyWindow || base.isKeyWindow {
base.makeKeyAndVisible()
}
windowLevel = UIWindow.Level(-1)
})
除了当NEW窗口被解除时没有调用HolidayViewController
viewWillAppear
之外,一切看起来都很好。我可以使用NotificationCenter
或completion
块来强制执行操作,但我不想这样做,因为我希望我的新窗口更通用,并实际使用正常的iOS事件链。
这正常吗?有没有办法让它很好地工作?
如果NEW窗口显示为模态,则驳回NEW窗口将不会调用HolidayViewController的viewwillrappend。因为HolidayViewController已经在视图层次结构中,并且在NEW窗口下可见。在关闭NEW窗口时,您可以使用委派来调用HolidayViewController的方法。