当UIWindow RootViewController更改SWIFT时触发事件/方法

时间:2016-03-21 07:02:46

标签: ios swift key-value-observing uiwindow rootviewcontroller

我正在研究iOS框架。当用户进入或退出特定的View Controller时,我需要记录事件。为此,我想在某种程度上我能够在根视图控制器更改时注册通知以触发自定义方法。或者也许使用KVO。但是从实现的角度来看,我不明白如何做到这一点,因为我找不到任何这样的通知。

在这方面的任何帮助将受到高度赞赏。感谢。

请注意,这是一个框架项目。因此构建框架,然后将其添加/嵌入到另一个应用程序中。我没有关于该应用程序中的视图控制器的任何信息。我唯一可以访问的是UIWindow的根视图控制器。所以,我需要知道它何时发生变化。

2 个答案:

答案 0 :(得分:2)

搞定了。答案是方法调整。不推荐作为问题的第一解决方案。但是如果仔细使用并且你确切地知道你在做什么,那就是要走的路。

在这里找到一篇非常有用的文章:Method Swizzling

答案 1 :(得分:0)

您可以覆盖UIViewController的{​​{1}}和viewWillAppear,以了解何时展示/解除视图控制器。

或者,您可以使用viewWillDisappearviewDidAppear

如果您想代表用户进行日志记录,那么您确实有两个选择:

1。为他们提供基础viewDidDisappear子类,以便在UIViewController / viewWillAppear方法中实现所需的逻辑。

2。实施便捷方法(例如viewWillDisappearlogAppearEvent),以便他们在logDisappearEvent子类中自行调用。