0

这是一个比问题更重要的要求。 有一个标签栏控制器,在标签栏控制器的其中一个控制器中有一个导航控制器。在它下面有一个段控件,我必须在表格视图中显示一些数据(我将通过URL连接)。在从段控制改变段时,表的内容将改变。段控件改变了表中显示的数据类型,甚至UITableViewCells也不同。所有三个分段都会在表格中显示数据。标签栏,导航栏和分段控件的设计问题

This is how design will be

一种可能的解决方案是改变数据,并且当该段被改变重新加载该表。 其他解决方案是更改视图(将有三个不同的视图控制器)更改段,这些视图控制器将实现自己的表代表,并将有独立的表视图。

我想第一个效率更高。第二个将保持不同部分的一切(代码)分离。虽然存在一些问题,但导航控制器在内部视图控制器中无法访问。

任何人都可以建议我最好的解决方案吗? 谢谢你。

+1

如果您在代理单例中保留对引用的控制权,则可以访问内部VC中的导航控制器。我做了一些非常相似的事情(选择2,每个表单独使用不同的VC),看起来很糟糕,我认为最好的办法是使用不同的数据源来处理每个表格,但单独的控制器工作正常。 – 2011-06-08 16:57:04

+0

切换数据源可能是最好的选择。切换视图控制器可以是非常麻烦的应用程序相比效率去 – justin 2011-06-08 17:04:30

+0

是的,我更喜欢第二个选项,但问题是我弹出使用外部导航控制器后,我没有调用viewWillAppear在内部VC。你能否详细说明一下使用不同的数据源。 – sole007 2011-06-08 17:06:42

回答

0

我深入了解了这一点,并最终大胆改变了单个TableView的数据源。我只有两个段,单元格类型,fetchedResultsControllers等,它仍然是一个非常沉重的自定义TableViewController。延迟加载图像,如果你需要这样做,也有点痛苦。

我不需要在各个表格视图的导航控制器上有一个句柄,但如果这对你很重要,那么第二种方法可能是最好的。尽管如此,第一种方法很好地解决了这个问题。有兴趣听到任何更好的模式。