我应该在这种情况下使用导航控制器吗?

时间:2015-01-19 07:08:24

标签: ios uiviewcontroller uinavigationcontroller

所以我正在构建一个简单的聊天应用程序。我将有一个登录屏幕,注册并稍后在UITableViewController上显示好友列表。我不确定我是否应该使用UINavigationController或者只是坚持使用UIViewControllers。以下是潜在设置的两张图片:enter image description here

和: enter image description here

我只是想知道通常更好的做法是使用导航控制器吗?关于视图控制器弹出时会发生什么,我也有点困惑。是 [self.navigationController popViewControllerAnimated:YES]; 将视图控制器保留在内存中以便稍后再次访问,还是每次都创建一个新控件? [self dismissViewControllerAnimated:YES completion:nil] 的相同问题是,这会破坏控制器还是将其存储起来供以后使用?感谢

3 个答案:

答案 0 :(得分:1)

我会告诉您关于何时使用导航控制器的意见。

如果您的应用需要以分层方式呈现其内容(主/细节),则使用UINavigationController非常常见。

如果您需要提供一些与演示内容不严格相关的内容,您可以使用新的视图控制器来呈现它。

关于内存,只要你没有保留对控制器的任何引用,一旦删除(弹出/解除),你就会失去对它们的任何引用,因此内存中没有使用空间

答案 1 :(得分:0)

我认为你会坚持UINavigationViewController。仅仅因为登录和注册属于您的用户管理。从 UX 角度来看,如果您要呈现的场景与当前场景无关,则最好使用模态。因此,请根据您的情况使用UINavigationViewController

第二个问题与内存管理有关。它有点像引用计数。如果你有引用UIViewController的东西,它的引用计数就不会降到零,这意味着系统不会清理它。所以,你仍然有办法获得。如果您只是简单地弹出然后关闭它而不引用它。引用计数将变为零,系统将清除它。

答案 2 :(得分:0)

注意:如果您只想显示一个不需要分层导航或导航栏的视图控制器,那么您就不需要使用UINavigationController。

但在这种情况下,我仍然建议使用UINavigationController,因为您可以使用导航流完全解决您的用例(登录流程)这一简单事实。

就记忆而言,现在存在差异。在这个问题上随意使用它们中的任何一个。虽然这些观点的呈现方式有所不同。