如果我在另一个视图上添加子视图而不删除它,应用程序就会挂起



如果我试图在另一个添加为子视图的视图控制器上添加子视图,我的应用程序就会挂起。

有什么方法可以获得视图背景中的视图控制器吗?以便我可以移除处于视图背景中的视图控制器。

图像1

图像2

let viewController = UIStoryboard(name: "Common", bundle: nil).instantiateViewController(withIdentifier: "ContactOptionsDialouge") as! ContactOptionsDialouge
viewController.initializeDataBeforePresentingView(presentConatctUserBasicInfo : userBasicInfo,supportCall: checkAndEnableCallOption(callSupport: matchedUser!.callSupport), delegate: nil, isRideStarted: isRideStarted!)
self.navigationController?.view.addSubview(viewController.view)
self.navigationController?.addChildViewController(viewController)

这是我用来添加视图控制器作为子视图的代码。另一个俯视控制器,当另一个用户使用mqtt连接接受乘坐时,它会自动出现

您的代码似乎没有崩溃。如果相关,您可以使用以下代码:

guard let viewController = UIStoryboard(name: "Common", bundle: nil).instantiateViewController(withIdentifier: "ContactOptionsDialouge") as? ContactOptionsDialouge else { print("viewController is nil"); return; }
guard let matchedUser = self.matchedUser else { print("matchedUser is nil"); return; }
guard let isRideStarted = self.isRideStarted else { print("isRideStarted is nil"); return; }
viewController.initializeDataBeforePresentingView(presentConatctUserBasicInfo: userBasicInfo, supportCall:  checkAndEnableCallOption(callSupport: matchedUser.callSupport), delegate: nil, isRideStarted: isRideStarted)
self.view.addSubview(viewController.view)
self.addChildViewController(viewController)
self.navigationController?.view.addSubview(viewController.view)
self.navigationController?.addChildViewController(viewController)

添加下面的代码行而不是上面的代码行对我来说很好:-

self.view.addSubview(viewController.view)
self.addChildViewController(viewController)