iOS应用程序中的多个UITableView控制器&子类化

时间:2012-11-01 16:14:39

标签: ios uitableview subclass

我正在研究斯坦福大学的CS193P iOS课程,在其中一项任务中,我们需要多个UITableViews。在任务说明中,讲师说:

  

“并使用你真棒的面向对象编程设计技巧   一定要尽可能多地重用代码。很多MVC都在这   应用非常相似。创建一个完全没问题   UITableViewController的子类做某事,然后创建一个   该类的子类做了稍微精炼的事情。“

所以而不是

@interface myFirstTableViewController : UITableViewController

@interface mySecondTableViewController : UITableViewController

他暗示我们使用:

@interface myFirstTableViewController : UITableViewController

@interface mySecondTableViewController : myFirstTableViewController

当我这样做时,mySecondTableViewController只有以下方法:

initWithNibName
viewDidLoad
didReceiveMemoryWarning

这里发生了什么?在mySecondViewController中,我是否只需要实现与myFirstTableViewController不同的方法(可能会略微更改,然后调用super版本?

另外,这是正确的做事方式还是最好将每个自定义tvc作为UITableViewController的单独子类?

1 个答案:

答案 0 :(得分:2)

模式越有可能:

@interface CommonTableViewController : UITableViewController
...
@interface FirstTableViewController : CommonTableViewController
...
@interface SecondTableViewController : CommonTableViewController

然而,设置无上下文的规则很困难;这实际上取决于可以将多少类似的代码移动到公共父代。 (如果mySecondTableViewController完成myFirstTableViewController所做的一切,再加上一点点,你构建事物的方式也不一定错。)