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

Ios 两个UIViewController,除1个参数外完全相同,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,在我的项目中,我在一个选项卡栏应用程序中有两个UIViewControllers,每个都包含一个UITableView,用于显示RSS提要中的信息。这两个视图控制器应该完全相同,除了一个NSString参数(提要URL) 我知道我可以简单地将代码从一个UIViewController复制粘贴到另一个UIViewController,但我想知道是否有更好的方法来实现这一点。我不确定我的措辞是否正确,但我想我想创建一个单独的文件,其中包含一个UIViewController“实例”,并将该实例应用于

在我的项目中,我在一个选项卡栏应用程序中有两个
UIViewController
s,每个都包含一个
UITableView
,用于显示RSS提要中的信息。这两个视图控制器应该完全相同,除了一个
NSString
参数(提要URL)

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


我想知道我所要求的东西是否可能,以及如何实现

您可以做的是重载UIViewController的构造函数(就像您对任何类所做的那样),并添加url作为参数。

使用这种方法,您将创建UIViewController的两个实例,在创建它们时使用的参数中只有一个不同。

我假设这两个视图控制器都是作为选项卡栏控制器的选项卡安装的

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

这是面向对象编程的一个基本概念,如果您没有理解它,那么您需要停下来阅读。你可能想看看“Objective-C编程:大书呆子牧场指南”。那本书将从一开始就教你用C和Objective C编程


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

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


但最好的方法肯定是Duncan C的

只有一个,并将URL作为参数传递!!!看看你刚才问的另一个问题:你没有花时间在文档上,是吗?@Merlevede这是一个选项卡栏应用程序,只有一个不会工作,因为“状态”每个UIViewController都不是独立的。@vikingosegundo您介意将我链接到一些对我实现此功能有用的相关文档吗?@goddfree我知道您需要两个!只有一个类,并创建两个实例。您的类将具有URL属性。我会听从vikingosegundo的建议。这是您想要的答案,它将避免使用相同的代码创建两个不同的
UIViewController
。我的回答有点离题,所以你最好不要走那条路,所以我把它记下来了。我在web开发方面做了相当广泛的工作,主要是PHP和JavaScript。我知道面向对象语言和过程语言之间有很大的区别。在大多数情况下,我只是查看其他人的示例和代码片段,以了解“发生了什么事”的大致情况,而我缺乏文档阅读是我无法理解基本实例化概念的原因。说实话,我更喜欢简单地通过跳入并接触代码来理解代码,而不是阅读文档然后尝试应用它。谢谢你的建议,我会仔细研究一下,看看是否能得到我想要的结果。如果你有过程语言方面的经验,那么Big Nerd Ranch这本书就不是一个好选择。您想要一本教您面向对象设计、objective-C和Cocoa Touch框架的书。这需要改变你的思维,你会让自己发疯,直到你做出改变。尽早花时间学习这些概念,你会省去很多痛苦。关于你之前所说的,你的意思是我应该在每个选项卡栏视图控制器中创建一个新的
MyRSSTableViewController
实例,然后使用类似
presentViewController
的方式显示它吗?