zoukankan      html  css  js  c++  java
  • 破壳(3)

    oc中类与类之间的信息参数传递总结出来有四种:

    直接的属性传值比较适用于,正向的A~B跳转传递,如果是B~A回传跳转比较适用其他传值方式。此时如果用直接属性传值,属性值可能为空。

    直接属性传值注意事项:

    1.要将数据传到哪一个页面(ViewController)就引用那个头文件

    2.属性(赋值)所要传的值要写在推出下一个窗口前面

    传值传的是地址,a类的数组改变,b类的数组也要改变。。。如果不想改变就使用copy 

    通知NSNotification

    协议Delegate

    单例设计模式

    块语法block

    申明了代理,所以代理类需要实现中的方法, 

    self.delegate = b;   [self.delegate methodA]; 

    methodAclass B Bjava eesessionblockdelegatedelegate:

    block(10,20);

    Ablock:

    return a+b;

    }];

    补充一点, 如动画和模态视图的回调也是用block实现的, 在api方法中定义了出现模态视图的一系列操作,在finish时执行了block(),这个block如何执行就由调用这个方法的类去实现

    iOS页面跳转:

    第一种

    [self.navigationController pushViewController:subTableViewController animated:YES];

    //描述:通过 NSNavigationBar 进行跳转 

    [self.navigationController popViewControllerAnimated:YES]; //描述:在子视图返回到上级视图

    第二种

    UIViewController *control = [[UIViewController alloc] init]; [self presentModalViewController:control animated:YES]; [control release]; //描述:通过事件进行跳转 [self dismissModalViewControllerAnimated:YES]; //描述:通过事件进行返回。

    第三种

    [self.view.window addSubview:otherview]; [self.view removeFromSuperview]

    数据传递:

    1)采用代理模式 子viewcontroller设计 代理协议,定义协议接口,父viewcontroller 实现协议接口,实现子viewcontroller 退出时将相关数据更新到父视图。

    2)采用ios的消息机制 父viewcontroller注册消息 子viewcontroller 发送消息,触发父viewcontroller的消息处理。

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setData:) name:kNotificationMessage object:nil];//注册监听,其中setData用来处理消息

    [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationMessage object:self userInfo:infoDict];//发送消息

    3)采用database做为数据中间的存储媒介,子viewcontroller将状态数据存入DB,父viewcontroller从DB获取数据更新view。

    4)采用ios的NSDefault 存储

    5)通过AppDelegate 中定义全局变量实现中间数据的存储。

    6.通过控制器属性传递

    .MainViewControllerSecondViewControllerSecondViewControllerfirstValue

    重写初始化方法,用于传值- (id)initWithValue:(NSString *)value{if(self = [super initWithNibName:nil bundle:nil]){self.firstValue = value;}return self;}

    将方法传值与初始化写到一起此时已经将值存在中

  • 相关阅读:
    LINQ to XML 操作XML文档
    C#2008与.NET 3.5 高级程序设计读书笔记(3)C#核心编程结构I
    阐述集合类的接口(IEnumerable,IEnumerator,ICollection,IList,IDictionary)
    山塞一个PetShop(Task001)——基本的数据库连接
    山寨一个PetShop(Task002)——数据类库Model
    自定义控件(Task01)——可以设置属性的控件
    ASP.NET连接SQL、Access、Excel数据库(三)——工厂模式
    ASP.NET连接SQL、Access、Excel数据库(一)——什么是ADO.NET
    ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
    ASP.NET连接SQL、Access、Excel数据库(二)——连接实例
  • 原文地址:https://www.cnblogs.com/liuxiaokun/p/5533453.html
Copyright © 2011-2022 走看看