仅在插入断点时工作的iOS抽屉UI
在我添加自述文件中显示的断点之前,以下应用程序无法正常工作。如果没有断点,UI将无法完成填充,并且无法识别平移手势。有了断点,一切都按设计进行 该应用程序有两个视图控制器:一个父视图控制器和一个抽屉视图控制器,通过以下方式添加到父视图:仅在插入断点时工作的iOS抽屉UI,ios,swift,xcode,uiviewcontroller,Ios,Swift,Xcode,Uiviewcontroller,在我添加自述文件中显示的断点之前,以下应用程序无法正常工作。如果没有断点,UI将无法完成填充,并且无法识别平移手势。有了断点,一切都按设计进行 该应用程序有两个视图控制器:一个父视图控制器和一个抽屉视图控制器,通过以下方式添加到父视图: override func viewDidLoad() { super.viewDidLoad() let vc = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewCont
override func viewDidLoad() {
super.viewDidLoad()
let vc = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "BottomSheetViewController") as! DrawerViewController
vc.configureDrawer(containerView: drawerContainer, overlaidView: overlaidView)
drawerContainer.addSubview(vc.view)
}
解决方案
和断点无关,这只是个侥幸。@rob mayof指出的问题是,子视图控制器和父视图控制器没有连接。下面标记了正确的解决方案。对于其他可能面临这一问题的人,苹果公司在网站上介绍了实现这些问题的正确方法
脚注
这个例子是为了在一个更大的项目中重现和隔离一个问题而开发的。在尝试执行此操作时,发现了此意外行为并找到了解决方案。以下是您的代码:
override func viewDidLoad() {
super.viewDidLoad()
let vc = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "BottomSheetViewController") as! DrawerViewController
vc.configureDrawer(containerView: drawerContainer, overlaidView: overlaidView)
drawerContainer.addSubview(vc.view)
}
(下次请将其包含在您的问题中。)
您必须通过建立父/子视图控制器关系,告诉UIKit视图控制器的视图位于另一个视图控制器视图的层次结构中。因此,您需要添加以下行:
override func viewDidLoad() {
super.viewDidLoad()
let vc = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "BottomSheetViewController") as! DrawerViewController
addChildViewController(vc) // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
vc.configureDrawer(containerView: drawerContainer, overlaidView: overlaidView)
drawerContainer.addSubview(vc.view)
vc.didMove(toParentViewController: self) // <<<<<<<<<<<<<<<<<<<<<<<
}
override func viewDidLoad(){
super.viewDidLoad()
让vc=UIStoryboard.init(名称:“Main”,bundle:nil)。实例化eviewcontroller(标识符为:“BottomSheetViewController”)为!DrawerViewController
addChildViewController(vc)//我不知道。Rob,我已经根据你的建议编辑了这个问题,并添加了苹果关于容器视图控制器的文档参考。你今天教了我一些东西。谢谢。