IOS / Storyboard:何时需要在导航控制器中嵌入视图控制器

时间:2017-05-23 20:19:18

标签: ios uinavigationcontroller

我有一个包含许多视图控制器的项目。因为我有时需要在导航栏中放置一个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。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

简而言之,导航控制器允许开发人员管理视图而无需输入太多代码。例如

使用导航控制器可以做到

navigationController?.pushViewController(yourViewController,animated:true)或

navigationController?.popViewController(animated:true)

没有实现navController你只能做

present(yourViewController,animated:true,completion:nil)或

self.dismiss(animated:true,completion:nil)