我是一个正在崭露头角的iphone开发者,并尽我所能,但我有一个关于UINavigationController的查询。
我有一个标签栏应用,有3个标签。
第一个标签有五个UIButtons,每个UIButtons加载应用程序的不同“部分”,每个部分都有多个视图。
其他标签只显示一些信息。
当用户选择我的第一个标签上的任何UIButton时,我正在使用[self.view addSubview:xxxxx];
当用户离开此视图时,我使用[self.view removeFromSuperview];
我的问题是:
这是一种糟糕的做事方式吗?我应该使用导航控制器吗?我没有使用过的原因是因为我想要一个自定义的UI,我明白导航控制器会强制你的设计。
最重要的是,我将使用核心数据来实现持久存储....我的实现此应用程序的方式是否会导致核心数据出现问题?
任何有关thsi的帮助都将受到高度赞赏。
干杯
汤姆
答案 0 :(得分:2)
首先,如果您不需要导航控制器,请不要使用它。你不应该为此感到难过。也就是说,我认为UINavigationController根本不会对您施加特定的UI。隐藏导航栏并实现您喜欢的任何UI都非常容易。 UINavigationController确实强加的是模块化设计:每个视图由一个单独的视图控制器管理并占据整个屏幕。只有这个设计适合您的应用才能回答。如果是,并且您的应用程序是围绕视图层次结构设计的,那么导航控制器可能是一个不错的选择。
答案 1 :(得分:1)
正如您所说:当点击五个按钮中的一个时,用户将导航到另一个视图,五个按钮消失。这就是导航控制器的设计目的,它可以帮助您更好地管理内存,而不仅仅是添加和删除视图(取决于添加/删除的视图数量,它可能也会提高性能)。正如Ole指出的那样,NavigationController具有高度可定制性,并且不会强加太多。
NavigationController为您提供了更大的灵活性:假设您想在2.0版中点击其中一个按钮后添加另一个层次结构级别。然后你会发现随着你不断添加视图,你的MainView将会增长。 UINavigationController使您的代码保持良好的结构,并允许您稍后扩展导航。
CoreData非常灵活且与UI无关。你不应该担心这个。