需要UINavigationController吗?

时间:2009-11-16 11:44:10

标签: iphone core-data uinavigationcontroller tabbar

我是一个正在崭露头角的iphone开发者,并尽我所能,但我有一个关于UINavigationController的查询。

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

  • 第一个标签有五个UIButtons,每个UIButtons加载应用程序的不同“部分”,每个部分都有多个视图。

  • 其他标签只显示一些信息。

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

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

我的问题是:

这是一种糟糕的做事方式吗?我应该使用导航控制器吗?我没有使用过的原因是因为我想要一个自定义的UI,我明白导航控制器会强制你的设计。

最重要的是,我将使用核心数据来实现持久存储....我的实现此应用程序的方式是否会导致核心数据出现问题?

任何有关thsi的帮助都将受到高度赞赏。

干杯

汤姆

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

CoreData非常灵活且与UI无关。你不应该担心这个。