两个UIViewControllers,除1个参数外完全相同

时间:2014-03-09 20:33:24

标签: ios objective-c uiviewcontroller

在我的项目中,我在标签栏应用程序中有两个UIViewController,每个都包含一个显示来自RSS提要的信息的UITableView。除了单个NSString参数(提要URL)之外,两个视图控制器应完全相同。

我知道我可以简单地将代码从一个UIViewController复制并粘贴到另一个UIViewController,但我想知道是否有更好的方法来执行此操作。我不确定我是否正确地说这个,但我想我想创建一个包含{{1}}“实例”的单独文件,并将该实例应用于我的应用程序中的每个视图控制器。

我想知道我要求的东西是否可行,以及如何完成。

3 个答案:

答案 0 :(得分:3)

我假设这两个视图控制器都安装为标签栏控制器的标签。

如果是这种情况,那么您希望两个视图控制器是同一视图控制器类的不同实例。如果你愿意的话,同卵双胞胎。我们称之为MyRSSTableViewController。您只需为MyRSSTableViewController类提供feedURL属性,并将该属性设置为创建MyRSSTableViewController类的每个实例的一部分。

这是面向对象编程的基本概念,如果你没有得到它,那么你需要停下来做一些阅读。您可能想查看“Objective-C编程:Big Nerd Ranch指南”。那本书将从一开始就教你用C和Objective C编程。

如果您已经拥有其他程序语言的编程经验,那么该书可能不是您的最佳选择。告诉我们您当前的技能,我们可以提出更好的建议。

答案 1 :(得分:0)

就个人而言,我只需要标题切换,并根据bool值更改数组的数据源。然后在想要切换时调用reload。

但最好的方法绝对是Duncan C的

答案 2 :(得分:-2)

你可以做的是重载你的UIViewController的构造函数(就像你对任何类一样)并添加url作为参数。
使用这种方法,您将创建UIViewController的2个实例,其中创建它们时使用的参数唯一不同。