iOS传值

作者: 隔壁小羊 | 来源:发表于2016-06-17 14:11 被阅读44次

    写给自己做笔记  不足之处 请多多指教

    1.代理传值

    在a触发代理  b会帮忙实现 

    在ViewController.h文件中  最上面 import下面

    @protocol PassTrendValueDelegate

    -(void)passTrendValues:(NSString *)values;//1.1定义协议与方法

    @end

    声明属性

    @property (retain,nonatomic) id<PassTrendValueDelegate>trendDelegate;

    .m文件中  创建一个按钮用来响应 代理

    UIButton *btn = [[UIButton alloc]initWithFrame:(CGRect){200,200,200,200}];

    [self.view addSubview:btn];

    [btn setBackgroundColor:[UIColor redColor]];

    [btn addTarget:self action:@selector(trendBtnClick) forControlEvents:UIControlEventTouchUpInside];

    #pragma mark 点击趋势按钮

    -(void)trendBtnClick{

    //create the view

    TwoViewController *trendViewController = [[TwoViewController alloc] init];

    self.trendDelegate= trendViewController; //设置代理

    [self.trendDelegate passTrendValues:@"Lves李兴乐"];

    }

    TwoViewController.m文件中  添加协议PassTrendValueDelegate

    实现代理方法

    -(void)passTrendValues:(NSString *)values{

    NSLog(@"代理在这里  values:::%@",values);

    }

    2.属性传值

    a传b

    b.h文件中添加属性

    a跳转时直接赋值即可

    3.通知传值

    传值

    NSNotification *notice = [NSNotification notificationWithName:@"number" object:nil userInfo:@{@"last":la}];

    [[NSNotificationCenter defaultCenter]postNotification:notice];

    接受

    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];

    [center addObserver:self selector:@selector(notice:) name:@"number" object:nil];

    4.单利

    声明一个类 .h文件中 申明要传的属性以及调用方法

    +(ChapterManager *)chapterManager;

    @property (nonatomic,strong) NSMutableArray *neet_datas;

    .m文件中 实现

    static ChapterManager *manager = nil;

    @implementation ChapterManager

    +(ChapterManager *)chapterManager

    {

    if (manager == nil) {

    manager = [[ChapterManager alloc]init];

    }

    return manager;

    }

    调用  类名直接调用

    block 不太会

    相关文章

      网友评论

          本文标题:iOS传值

          本文链接:https://www.haomeiwen.com/subject/wcsprttx.html