2010-11-11 97 views
0

服务器我必须表现出导航图,其中的意见数量与服务器相关。所以我不能硬编码视图控制器。有什么办法可以使用1视图控制器,并且数据将由服务器发送。所以基本上它的工作是这样的:从服务器...显示 1.获取数据使用导航控制器导航视图。 2.有一次,我在一个实体轻点......我得到的另一组数据从服务器...使用相同的控制器显示在屏幕上...答等等......因为我不知道,直到什么水平我们可以向下钻取。 3.一旦用户点击后退按钮...我将使用本地缓存的数据在相同视图中呈现...导航控制器 - 驱动型数据

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

请指导。

回答

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]; 

0

一点问题都没有。你可以动态地将UIViewControllers推入你的UINavigationControllers viewController数组中。你应该,你所说的,实现对设备上的内容进行缓存的机制,所以你不必重装所有的东西所有的时间。

一种方法是通过你,只有当它不同于你已在设备上本地存储(通过哈希值,更新时间戳的版本号例如比较)服务器加载XML结构。

0

您不能推送相同对象栈上多次,但它听起来像是你想多次实例相同类,并推动各那些对象。

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