0

我刚开始为 iPhone 开发 1 周前,一切进展顺利,但我什至不知道如何问这个问题(英语不是我的自然语言),让我们看看你是否能理解我。

我有一个 ViewController 可以做很多事情。显示一些图像,做一些动画,滚动图像,同时从页面控制器更改白点......嗯,这种东西。

但是我的 ViewController.m 只有一个文件有这么多代码。好吧,还没有

我想做的是创建另一个文件,我可以在其中编写 moar 代码,提高可读性和组织性。像这样:

ViewController.m (ViewController general code)
ViewController_Navigation.m
ViewController_ImagesScrolling.m
ViewController_DBActions.m

如果需要,使用它们各自的头文件。

那么,我该怎么做的任何想法或例子?

4

3 回答 3

0

您需要为单个视图/xib 添加更多对象/控制器类。

他们每个人都将被分配/链接到您的班级。

在此处输入图像描述

- 这是 OSX 中非常常见的设计模式,我希望这对 ios 也是有效的。

于 2013-03-14T18:24:34.623 回答
0

iOS 基于 MVC 模型。因此,您应该使用控制器来管理模型和视图。

理想情况下,我会这样做:

一种。实现单独的控制器来管理
   1. 图像 -> 分离用于显示图像的视图
   2. 数据库
   3. 你拥有的任何其他东西......

b。实现一个单独的控制器来管理上述控制器。

于 2013-03-14T18:28:00.887 回答
0

将函数分离和封装到单独的类中是分解大量代码的常用概念。与一项任务有关的所有方法都可以作为对象集中在一起,通常是某种 UIView 子类,或 UIViewController 子类,用于值得拥有自己的信息屏幕的更大任务。例如,您可能拥有一个在设置了所需的 UIImage 后自行处理图像滚动的设备。但是,除此之外,您通常不应该拆分单个控制器的代码。控制器包含所有将视图与 MVC 模式中的模型一起显示的粘合剂。因此,一旦所有不依赖于模型的功能都被划分为视图,您就可以

我不建议将代码拆分为单独的文件,因为它们都有一个目的:协调屏幕上发生的事情并允许视图与模型交互。但是,我通常做的是根据代码管理的任务对代码进行分类和排序。因此,所有的生命周期和普通方法都可以排在最前面,然后是所有表格视图方法、图像查看器方法等。

这使得查找与特定任务相关的代码变得容易,在pragma指令的帮助下甚至更容易。在任何方法之外,在已排序的方法组之间,您可以使用 apragma mark将标识符分配给代码中的某个位置,可以通过跳转栏访问,就像我在以下示例代码中所做的那样。

#pragma mark - UIViewController Lifecycle Methods:

- (void) viewWillAppear{
    //stuff
};
- (void) loadView{
    //stuff
};

#pragma mark - UITableView Delegate & Datasource Methods:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    //stuff
 };
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    //stuff
};

现在,如果您要转到 Xcode 代码查看器顶部的跳转栏并单击最右侧的对象以查找方法,您会看到:

在此处输入图像描述

我不相信在对您的代码进行排序、用 pragma 标记将其标记并将您可以使用的所有代码分离到其他 UIView 和 UIViewController 之后,您应该觉得需要将代码拆分为几个文件;您可以使用跳转栏转到代码的任何部分,就像交换文件一样。但是,这样一来,您就不会从一个类中分割代码并在整个地方留下点点滴滴。

于 2013-03-14T19:37:33.263 回答