ios - 以编程方式删除 NavigationController

标签 ios swift

应用程序包含多个导航 Controller 。 (下面的例子)

NavigationController1 ----> ViewController1 ---> TabBarController --> 
NavigationController2 ----> ViewController2

每当 ViewController1 消失时,我都会使用 NavigationController.view.removeFromSuperview 删除 NavigationController

我在加载 ViewController2 时面临的问题。我只是看到一个黑屏没有别的。可能是什么问题?

移除 navigationController 的最佳方法是什么?

最佳答案

黑屏只不过是 UIWindow。当您删除 NavigationController 时,窗口没有任何 NavigationController。因此,您必须在删除第一个 NavigationController 后立即为窗口设置 NavigationController。

你可以这样尝试:

 let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

 appDelegate.window?.rootViewController = YOUR_NAVIGATION_CONTROLLER_OBJECT;

关于ios - 以编程方式删除 NavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768561/

相关文章:

ios - 当用户进入后台模式时使用 viewWillDisappear

ios - 将 GUID 转换为 NSString - Objective C

ios - pushViewController 不推送新 View

ios - 如何在 Swift 中使用带变量的 NSLocalizedString 函数?

iOS:从 AppDelegate 添加 subview 未加载

swift - 如何快速将几张图片作为一张图片保存到照片库?

ios - 使用 NSPredicate 搜索一系列 NSString

ios - 自动调整 Tableview 单元格到单元格内容(SWIFT)

ios - EKEvents 不会快速填充表格 View

swift - 使用 QLPreviewingController.preparePreviewOfFile 预览时设置 QuickLook 窗口大小