如何知道用户何时通过点击标题关闭了模态呈现的控制器?
How to know when user has closed modally presented controller by tapping on title?
有没有办法在代码中知道用户何时通过点击标题关闭了模式? Apple's documentation 状态:
The title of the modal interface is set to the string Cancel unless the presented interface controller explicitly changes it using the setTitle:
method. Tapping the title dismisses the interface automatically.
据我所知,现在可以用按钮替换该标题。
我可以在 didDeactivate()
或 willDisappear()
上触发通知,但这些也会在应用程序进入后台时调用。因此,我可以在 ExtensionDelegate 的 applicationWillResignActive()
中进行额外检查,以区分用户在我的应用程序内或应用程序外的操作,但这看起来非常脆弱。
有没有更好的方法?
为什么需要这个?
在我的例子中,我有一个初始屏幕,用户可以在其中进行选择。做出选择后,我会显示包含基于该选择的数据的屏幕。
我总是想在做出选择时显示数据。所以我保存选择并在应用程序启动时显示模态。
但是如果用户关闭了数据显示,我不想显示数据。但我仍然想在第一个屏幕上显示所做的选择。所以我不能使用已经做出选择来触发模态显示的事实。
因此我需要知道模态是否由于用户在应用程序中的交互或应用程序被切换而消失。
不幸的是,没有其他方法可以做到这一点。
但是为什么需要在 applicationWillResignActive()
添加额外的检查?我认为没有必要这样做。
有没有办法在代码中知道用户何时通过点击标题关闭了模式? Apple's documentation 状态:
The title of the modal interface is set to the string Cancel unless the presented interface controller explicitly changes it using the
setTitle:
method. Tapping the title dismisses the interface automatically.
据我所知,现在可以用按钮替换该标题。
我可以在 didDeactivate()
或 willDisappear()
上触发通知,但这些也会在应用程序进入后台时调用。因此,我可以在 ExtensionDelegate 的 applicationWillResignActive()
中进行额外检查,以区分用户在我的应用程序内或应用程序外的操作,但这看起来非常脆弱。
有没有更好的方法?
为什么需要这个?
在我的例子中,我有一个初始屏幕,用户可以在其中进行选择。做出选择后,我会显示包含基于该选择的数据的屏幕。
我总是想在做出选择时显示数据。所以我保存选择并在应用程序启动时显示模态。
但是如果用户关闭了数据显示,我不想显示数据。但我仍然想在第一个屏幕上显示所做的选择。所以我不能使用已经做出选择来触发模态显示的事实。
因此我需要知道模态是否由于用户在应用程序中的交互或应用程序被切换而消失。
不幸的是,没有其他方法可以做到这一点。
但是为什么需要在 applicationWillResignActive()
添加额外的检查?我认为没有必要这样做。