创建mvc

有几个界面就建几个文件夹
每个文件夹中都有三个文件夹,(models,Controllers,views)
创建一个common 和一个Base文件夹(先建文件夹,可以直接拉进去)
common的目的是创建第三方框架
Base是其他基础(Baseviewcontroller 和BasenavigationController,BaseTabBarController)
创建PCH(预编译文件)文件(目的是在整个文件编译之前导入头文件,避免重复导入)
导入预编译的文件
1Base文头文件
 
 宏定义
2#define  新名  旧名
 
 3common文件
  common文件有第三方的头文件(common的类型是 Header File文件)
 
 
//创建窗口
//创建标签控制器
 设置为窗口的足视图控制器
 设置标签控制器的控制器数组
 
 for ( in){  }//遍历数组????
初始化控制器数组(NSClassFromString(类名),控制器的初始化[NSClassFromString(类名) alloc] init],这个控制器初始化的值用父类来接收)
设置 控制器的TabBarItem.title 
                       TabBarItem.image
 
初始化导航控制器的数组设置根视图为上面初始化的控制器
 
 
 
//在每个视图控制器的init方法中加入每个视图控制器的标题
   控制器.title = @“标题”;(注如果不设置title的话,默认设置的是控制器.TabBarItem.title )
 
//NavigationBar的背景颜色和字体
 在BaseNavigationController里进行设置
 self.navigationBar.backgroundColor//这样不是我们想要的
 
//定制一个类的外貌直接作用于父类??
推荐使用
 
 
//定制系统状态栏风格??(如果隐藏了导航栏的话,要重写这个方法)
 
 
 
//主页面
 隐藏导航控制器
新建一个自定义导航控制器的视图
新建一个自定义的导航控制器器的背景图
 
 
在导航控制器中放控件
 
 
左侧安钮
button的文字的偏移属性
button的图片的偏移属性
 
记住当一个视图控制器有导航控制器 和标签控制器的时候,当这个视图控制器pushViewController的时候push到的控制器页拥有了标签控制器 和 导航控制器
 
//如果相似的文件中代码重复多的话,我们可以写这几个相似文件的父类
 
//在视图控制器中
 
 
这3中方法的先后顺序
-(id)init
-(void)loadView
-(void)ViewDidLoad(在这时候这个控制器的View才能显示出来,才能在这个控制器的View上加其它的视图)
 
NavgationBar 自带一个边缘手势(就是我们滑动的时候可以返回到上一个界面(但我们把Navgationbar隐藏的时候,这个边缘手势也就没有了))
 
 
一般创建手势的时候,我们一般用swipe的清扫手势
 
- (void)swipeAction:(UISwipeGestureRecognizer *)swipe {

    switch (swipe.direction) {
        case UISwipeGestureRecognizerDirectionRight:
        {
            CGPoint point = [swipe locationInView:self.view];//这个是判断这个手势的点在这个控制器的View里面的位置
           
            if (point.x < 20) {
               
                [self.navigationController popToRootViewControllerAnimated:YES];
            }
           
        }//记住,当Case里面使用的是函数的时候可以不用大括号,但是当调用方法的时候必须使用大括号
            break;
           
        default:
            break;
    }

}
 
 
//当用代码写的时候必定用
-(id)initWithFram:(CGRect)fram{
}
//当用xib进行加载的时候
—(void)awakFromNib{
}
 
//怎么才能走到这个类里面,必须复写init方法
 
 
//表视图
(两个必须实现的方法)datasource
 
//1返回单元格的个数
//2每个单元个的样子{
     //设置一个标识符
   我们的单元格首先要到tableView(表视图)复用池里面去取,根据就是标志符
 static NSString *identfier = @"HomeCell";
   
    HomeTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identfier];
 
//判断复用池里有没有带有标志符的cell,
如果没有的话我们就去创建
    if (!cell) {
       
    cell = [UITableview alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
   
}
 
//delegate
//行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return 150;
}
 
     
 
/声明代理的时候必须用assign
@property (nonatomic, assign)id <HomeTableViewDelegate> scrollDelegate;  
 
 
 
//图片的加载
   加载本地的图片方式
 
 
 
  加载网络图片方式
  URL是图片在网路上的存储地址
 
 
 
当一个变量用的次数多的时候就声明为全局变量,当用的次数不多的时候那么就用tag值
 
 
 
 // 过渡形式实现翻转动画
    UIViewAnimationTransition transition = flip?UIViewAnimationTransitionFlipFromLeft:UIViewAnimationTransitionFlipFromRight;
 
//注意
   // 3.数据传递。(一是数据,二是子视图 当二者全部存在是才能完成数据的传递)
    _tableView.dataList = _homeModels;
   
    _posterView.dataList = _homeModels;
    
   @property (nonatomic, strong)HomeModel *model;//注意model属性用 strong
 
 
 
 
 
//把字典存储为一个类的形式,属性就是key值,value就是属性的值
posted @ 2016-04-01 17:16  印象苹果  阅读(349)  评论(0编辑  收藏  举报