现在有一套成熟的夜间模式解决方案
参考博客:
Method Swizzling
向视图控制器的生命周期中注入操作、事件的响应、视图的绘制,或Foundation中的网络堆栈都是能够利用method swizzling产生明显效果的场景。还有一些其他的场景使用swizzling会是一个合适的选择,这随着Objective-C开发者经验不断丰富会变得越来越明显。
实现方案
通过swizzling替换掉UI控件的backgroundColor的方法,在更换主题的方法中更换主题的前置条件
Demo