导航控制器 - 服务器驱动的数据

时间:2010-11-11 17:49:42

标签: iphone

我必须显示导航视图,其中视图的数量取决于服务器。所以我不能硬编码视图控制器。有什么办法我可以使用1个视图控制器,数据将由服务器发送。所以基本上它会像这样工作: 1.从服务器获取数据...使用导航控制器在导航视图中显示。 2.一旦我点击一个实体......我从服务器获得另一组数据......使用相同的控制器在屏幕上显示...等等......因为我不确定我们能达到什么水平深入研究。 3.一旦用户点击后退按钮......我将使用本地缓存的数据显示在同一视图中......

这里看到任何问题。我想知道我是否可以在堆栈中多次推送相同的控制器类'对象。

请指导。

3 个答案:

答案 0 :(得分:0)

只要它们是不同的物体,它就能正常工作。

YourNavViewController *firstNavViewController = [[YourNavViewController alloc] initWithNibName:@"YourViewXib" bundle:nil];
[self.navigationController pushViewController:firstNavViewController animated:YES];
[firstNavViewController release];  

然后再到那个:

YourNavViewController *secondNavViewController = [[YourNavViewController alloc] initWithNibName:@"YourViewXib" bundle:nil];
[self.navigationController pushViewController:secondNavViewController animated:YES];
[secondNavViewController release];  

答案 1 :(得分:0)

完全没问题。您可以动态地将UIViewControllers推送到UINavigationControllers viewController数组中。正如您所提到的,您应该实现一种在设备上缓存内容的机制,这样您就不必一直重新加载所有内容。

一种方法是通过xml结构,只有当它与您在设备上本地存储的内容不同时才从服务器加载(例如,通过哈希,更新时间戳的版本号进行比较)。

答案 2 :(得分:0)

你不能多次在堆栈上推送相同的对象,但听起来你想要多次实例化相同的,并推送每个 em>那些对象。

因此,如果您收集的数据是XML(例如),并且您具有从NSXMLParser类解析的对象层次结构,则对于层次结构中的每个级别,您可以创建一个包含该数据的新视图对象。等级,并推动它。