【发布时间】:2011-06-08 16:50:37
【问题描述】:
这更像是一个要求而不是一个问题。 有一个标签栏控制器,在标签栏控制器的其中一个控制器中有一个导航控制器。在它下面有一个段控件,我必须在表格视图中显示一些数据(我将通过 URL 连接获得)。在从段控件更改段时,表的内容将发生变化。并且段控件改变了表格中显示的数据类型,甚至 UITableViewCells 也不同。所有三个段都将在表格中显示数据。
一种可能的解决方案是更改数据并在更改段时重新加载表。 其他解决方案是在更改段时更改视图(将具有三个不同的视图控制器),这些视图控制器将在那里实现自己的表委托并具有独立的表视图。
我想第一个效率更高。第二个将使所有内容(代码)与不同的部分分开。但是有一些问题,导航控制器在内部视图控制器中是不可访问的。
谁能建议我最好的解决方案? 感谢您的建议。
【问题讨论】:
-
如果您在委托单例中保留对导航控制器的引用,当然可以访问内部 VC 中的导航控制器。我做了一些非常相似的事情(在某种程度上,选项 2 为每个表使用单独的 VC),看起来很糟糕,我认为最好的方法是为每个表使用不同的数据源,但单独的控制器工作正常。
-
切换数据源可能是最好的选择。相比之下,就效率而言,切换视图控制器在应用程序上可能非常麻烦
-
是的,我更喜欢第二个选项,但问题是在使用外部导航控制器弹出后,我没有在内部 VC 中调用 viewWillAppear。您能否详细说明使用不同的数据源。
标签: iphone ios uitableview uinavigationcontroller uitabbarcontroller