这是一个 MVC 最佳实践问题。我会解释我的设计,然后你们可以告诉我这听起来是否正确。
我有一个视图显示来自类似于 iBooks 的 PDF 中的文本数据,称为 TextView.h。它有一个 UIScrollView,它使用分页来允许读者在页面中滑动。
我假设所有将文本加载和分解成页面的逻辑都应该由模型类完成。因此,对于最佳实践,我想我创建一个模型类并让它负责 1)打开 pdf 2)有一个公共接口,视图控制器可以使用它来根据它想要的页面查询文本数据
我有一个 TextViewController.h,它是 TextView.h 的代表。TextViewController 将负责 1) 加载文本视图 2) 查询模型并使用结果填充视图。例如
UILabel *label = [model getTextForPage:1];
[myView addPage:label];
3) 给 textViewController 一个委托方法,每次用户在视图中翻页时都会触发该委托方法。即视图控制器将监听视图的didEndDecelerating 方法。发生这种情况时,viewController 可以获取新页面的文本并将其传递给视图,例如
UILabel *label = [model getTextForPage:x];
[myView addPage:label];
让我知道这一切听起来是否正确。谢谢!