【问题标题】:UINavigationController is it needed?需要 UINavigationController 吗?
【发布时间】:2010-12-17 00:49:31
【问题描述】:

我是一名初出茅庐的 iphone 开发人员,正在尽我所能,但我对 UINavigationController 有疑问。

我有一个标签栏应用,有 3 个标签。

  • 第一个选项卡有五个 UIButton,每个按钮加载应用程序的不同“部分”,每个部分都有多个视图。

  • 其他选项卡只是显示一些信息。

  • 当用户在我的第一个选项卡上选择任何 UIButtons 时,我正在使用 [self.view addSubview: xxxxx];

当用户离开这个视图时,我使用 [self.view removeFromSuperview];

我的问题是:

这是一种糟糕的做事方式吗?我应该使用导航控制器吗?我没有使用它的原因是因为我想要一个自定义外观的 UI,并且我知道导航控制器会稍微强制您的设计。

除此之外,我将使用核心数据来实现持久存储......我实现此应用程序的方式会导致核心数据出现问题吗?

任何有关 thsi 的帮助将不胜感激。

干杯

汤姆

【问题讨论】:

    标签: iphone core-data uinavigationcontroller tabbar


    【解决方案1】:

    首先,如果您不需要导航控制器,请不要使用它。你不应该为此感到难过。也就是说,我认为 UINavigationController 根本不会将特定的 UI 强加给您。隐藏导航栏并实现您喜欢的任何 UI 都非常容易。 UINavigationController 所做的事情是模块化设计:每个视图都由一个单独的视图控制器管理并占据整个屏幕。只有您可以回答此设计是否适合您的应用程序。如果是这样,并且如果您的应用是围绕视图层次结构设计的,那么导航控制器可能是一个不错的选择。

    【讨论】:

    • 感谢您的意见,非常有帮助!
    【解决方案2】:

    正如您所说:当点击五个按钮中的一个时,用户正在导航到另一个视图并且五个按钮消失。这就是导航控制器的设计目的,它可以帮助您更好地管理内存,而不是简单地添加和删除视图(取决于添加/删除了多少视图,它也可能在性能上更好)。正如 Ole 所指出的,NavigationController 是高度可定制的,不会强加太多。

    NavigationController 为您提供了更多的灵活性:假设您想在 2.0 版中点击其中一个按钮后添加另一个层次结构级别。然后你会发现你的 MainView 会随着你不断添加视图而增长。 UINavigationController 使您的代码结构良好,并允许您在以后扩展导航。

    CoreData 非常灵活且独立于 UI。你不应该担心这个。

    【讨论】:

    • 感谢您的回复,这有助于我了解导航控制器的需求以及对核心数据的影响!
    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2013-02-13
    相关资源
    最近更新 更多