分析{功能分析(打电话、添加联系人、修改联系人),模块分析(联系人展示、详情模块、添加模块)}
拿到一个项目,首先分析项目框架(工程框架)
首先:判断是否是用户第一次安装:(如果是的,那就加载用户引导页面)(如果不是,那就显示用户联系人的主页面)
其次:用户联系人的主页面VC(用一个协助类 addressbookheleper类(做数据处理相关的内容,属于MVC的M层。只处理相关的数据,这里是为VC瘦身)去提供相应的方法 给 controller (ContactListViewController) )这里面有这几个方法:为VC提供tableViewCell某一分区得到行数、分区个数、对应的分区的标题、右侧的索引、是否要删除某分区、是否要删除某一行、移动某分区的某一行、返回对应行的联系人、添加联系人。
#import "AppDelegate.h" #import "ContactListViewController.h" #import "MainNavigationController.h"//程序导航栏是同样的风格,所以这里用公用的类 @interface AppDelegate () @end @implementation AppDelegate -(void)dealloc{ [_window release]; [super dealloc]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; //判断是否是第一次安装 //如果是,则指定为引导用户页为第一启动(为 window 的跟视图控制器)否则进入程序的主页面 //设置 根视图控制器 ContactListViewController * mainVC = [[ContactListViewController alloc]initWithStyle:UITableViewStylePlain]; //创建导航控制器 MainNavigationController * navl = [[MainNavigationController alloc]initWithRootViewController:mainVC]; //指定为 window 根视图控制器 self.window.rootViewController = navl; //释放所有权 [mainVC release]; [navl release]; return YES; }