快速-摇​​动手势可关闭子视图控制器

时间:2018-07-19 16:14:46

标签: ios swift uinavigationcontroller segue uiapplication

我有两个视图控制器,它们在情节提要中定义为

UIViewController -> (Show Detail Segue) -> UITabBarController

我的问题是;我正在使用名为netfox的库来调试我的HTTP请求。而此文物UIShake Gesture触发。但是当我来到模拟器上的UITabBarController Shake Gesture时,第一次无法使用。第二次,它关闭了当前在屏幕上的ViewController,显然是UITabBarController的子元素,并返回到初始的UIViewController。这就像将两个ViewControllermodal segue连接并从子级中调用self.dismiss()一样。

我尝试将rootViewController中的UIApplication更改为

UIApplication.shared.keyWindow.rootViewController = self 

viewDidLoad()的{​​{1}}方法中起作用。但是,对于此解决方案,缺少UITabBarController的子项UINavigationBar的{​​{1}}中UINavigationController中的项目(按钮,标题)。

我不知道为什么会这样。如果在我解决此问题时有人帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

代替使用

self.performSegue(withIdentifier:_)

UIViewController中调用此方法已成功:

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = mainStoryboard.instantiateViewControllerWithIdentifier("tabBarcontroller") as UITabBarController  
UIApplication.sharedApplication().keyWindow?.rootViewController = viewController;

遵守此answer