我有一个具有以下结构的应用
vehicle->subscribe->removePackage(SUBSCRIBE_PACKAGE_INDEX_200Hz, responseTimeout);
CameraController的viewDidload方法中的显示first
视图,此后在选择图像后显示UploadController。
我的问题是,在uploadController中,如果我在选项卡栏中单击“主页”,则会转到“主页”,但在此之后如果在选项卡栏中单击“相机”,则会直接转到“ UploadController”而不是“ CameraController”,并且不会加载Fusuma。
我想每次单击选项卡栏上的按钮时加载cameraController怎么做?
这是我的代码,用于加载UploadViewController
--TabBarController
--HomeController
--CameraNavigationController
--CameraController
--UploadController
--ProfileController
答案 0 :(得分:2)
实际上,选项卡栏的行为与您在项目中看到的完全一样。 您还想做些其他的事情,我建议的方法是监视标签栏的选择并做您想做的事。
委托类中的此方法观察选项卡的操作:
func tabBarController(_ tabBarController: UITabBarController,
didSelect viewController: UIViewController)
在这种方法下,您可以检查相机标签是否显示上传控制器,然后将导航弹出到根视图,这会导致当您切换回相机标签时,您看到CameraController
愿您找到更好的方法来解决此问题,这是我的解决方案。
答案 1 :(得分:2)
将以下代码添加到CameraNavigationController
(假设它是UINavigationController
的自定义类。如果不是,请创建一个新代码并在其中添加以下代码),
override func viewWillDisappear(_ animated: Bool) {
self.popToRootViewController(animated: false)
}
答案 2 :(得分:0)
将标签栏索引设置为根ViewController,然后在此之后显示cameraVC。
答案 3 :(得分:0)
guard let popToVC = self.navigationController?.viewControllers[((self.navigationController?.viewControllers.count)!)-5] else { return }
navigationController?.popToViewController(popToVC, animated: true)
此解决方案适用于如果您想导航回您的特定视图控制器。我已经使用 -5 导航回第 5 个屏幕。您可以根据根视图层次结构使用您的号码