OC 父控制器消失时子控制器保持不变的实现方法
要实现父控制器消失时子控制器保持不变,可以使用以下方法:
- 在父控制器中使用 present 方法展示子控制器,并设置 animated 参数为 false,以便不显示过渡效果。
let childViewController = ChildViewController()
parentViewController.present(childViewController, animated: false, completion: nil)
- 在父控制器的 viewWillDisappear 方法中,将子控制器的 view 从父控制器中移除,但不要调用子控制器的 dismiss 方法,以确保子控制器保持不变。
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
childViewController.view.removeFromSuperview()
}
- 在父控制器的 viewDidDisappear 方法中,将子控制器的 view 重新添加到父控制器的 view 上,确保子控制器的 view 在父控制器重新出现时保持不变。
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
parentViewController.view.addSubview(childViewController.view)
childViewController.view.frame = CGRect(x: 0, y: 0, width: parentViewController.view.frame.width, height: parentViewController.view.frame.height)
}
通过以上步骤,可以实现父控制器消失时子控制器保持不变的效果。
原文地址: https://www.cveoy.top/t/topic/o1EM 著作权归作者所有。请勿转载和采集!