我有一个包含许多视图控制器的项目。因为我有时需要在导航栏中放置一个Done或者以模态方式启动View Controllers并在导航栏中需要一个取消按钮,所以我养成了在导航栏中嵌入视图控制器的习惯。
然而,在构建应用程序时,我注意到我收到很多关于导航控制器的警告:
unreachable because it has no entry points, and no identifier for runtime access via -[UIStoryboard instantiateViewControllerWithIdentifier:].
到目前为止,我发现在这些情况下,通常会有一个来自另一个视图控制器的segue直接到相关的视图控制器。通常VC中没有Done按钮或其他条形按钮项。
删除其中一些“无法访问”的导航控制器后,我注意到它似乎没有任何影响。 VC仍然有一个后退按钮,功能相同。似乎编译器会自动在这些VC中放置导航栏并带有后退按钮,它们的行为与它们嵌入导航控制器中的行为相同。
我的直接问题是我是否可以安全地删除这些无法访问的NavBar控制器。我更广泛的问题是:是否存在一个规则或原则,用于何时将VC嵌入到Nav中,例如,当您想要插入除Back之外的条形按钮,以及何时不需要使用Nav。
感谢您的任何建议。
答案 0 :(得分:0)
简而言之,导航控制器允许开发人员管理视图而无需输入太多代码。例如
使用导航控制器可以做到
navigationController?.pushViewController(yourViewController,animated:true)或
navigationController?.popViewController(animated:true)
没有实现navController你只能做
present(yourViewController,animated:true,completion:nil)或
self.dismiss(animated:true,completion:nil)