UIViewController-DisplayChild
问题:有时你需要嵌入一个控制器,但它可能已经被嵌入。例如,你有一个空的视图,你刷新它却只能再次得到一个空视图。如果你不检查其存在,你可能会不必要地创建一个新的实例。如果在 viewDidLoad 中有较重的操作,这也可能有不良的影响。
解决方案:将类型过渡到实例。如果实例不存在,它会为你创建,你还有机会通过 configuration
块在初始化后配置它。如果实例已存在,则仅执行配置块,这样你就可以显示新的内容。你不必再担心你想嵌入的控制器是否已经呈现。
示例
import UIViewController_DisplayChild
displayChild(
ofType: ErrorViewController.self,
in: containerView,
animated: false,
configuration: { controller in
controller.model = model
}
)