2012-06-25 53 views
0

我有一个UITableView,我希望UITableViewController内置的所有功能除了我希望委托是一个单独的类。问题是我需要从我的数据源中提取一段识别信息,以便我的委托类能够正常工作。我应该让UITableView委托给UITableViewController,然后它将拉取适当的识别信息,然后从didSelectRowAtIndexPath中调用第三个类?我只是想以适当的方式构造这个。适合这种情况的适当的UITableView委派策略是什么?

我是相当新到iOS和Objective-C,所以我觉得有,每个人都将使用一个解决方案,但不是很明显我。

回答

1

我会让委托和数据源都指向您的自定义类。在一个地方管理表视图事件会更容易,而且您确实不需要UITableViewController。如果将它们分开,那么代表和数据源之间很可能会有很大的耦合,因为听起来您需要在它们之间传输大量信息,这违背了将它们分为不同类的目的。

+0

请注意,某些表视图功能只有在您明确使用“UITableViewController”(例如静态单元格)时才可用。 – Lvsti

+0

@Lvsti我不知道这一点,在什么情况下您是指静态单元格? –

+0

如果您使用界面构建器,则可以从iOS 5预填充静态内容,但前提是您的视图控制器是“UITableViewController”子类。见例如http://stackoverflow.com/questions/8639780/uitableview-with-static-cells-does-not-appear – Lvsti

0

当我在同一个UIViewController中有两个表视图并且可以满足您的需求时,通常使用的策略是为每个tableView创建一个Object类,例如:MyFirstTableViewManager和MySecondTableViewManager。

每个表视图管理器被设置为委托和数据源到每个的tableview。

如果我需要在我创建这是我从UIViewController中设置每个表视图管理器类的属性各tableview中显示了大量的信息。

这样我分离管理每个表视图的逻辑,使其更容易,并保持清洁,从我的UIViewController我可以设置信息显示在每个表视图的设置每个表视图管理器属性,并使他们重新加载其数据需要时。

希望这可以帮助你。

相关问题