美文网首页
iOS中传值问题

iOS中传值问题

作者: Skysama | 来源:发表于2017-05-06 00:05 被阅读0次

1.在iOS中正向传值 可以用属性就不多说了,反向传值 从image中传值给controller的时候 我们可以用 代理 Block代码块 还有通知的方法传值
举个例子: A页面push到B页面 现在要从B页面pop回 A页面的时候传值给 A页面

(1).简单说就是从B页面传值给A页面
可以用block传值
在B页面的.h中声明block的函数
block的声明
@1. typedef void(^block函数名)(参数名);
@2. 声明block的属性 用copy 在ARC中用strong也可以 不过苹果官方建议用copy
@3. 为了防止循环引用 在block的 赋值方法中 要用weakself 弱引用

typedef void(^SelectedBlock)(NSString *textname);

@interface textTwoVC : UIViewController

@property (nonatomic, copy) SelectedBlock selectedBlock;

typedef void 是声明一个新的类型 SelectedBlock 是block函数的名字 textname 是传值的内容 当然可以传递多个参数

(2)然后在B页面的.m中 进行传值操作
if (self.selectedBlock) {
self.selectedBlock(@"传值123");
}
判断一个block是否存在 在进行传值

(3)在A页面中接受B页面传过来的值 在A页面需要取值的时候
_texttwoVC.selectedBlock=^(NSString *textStr){
//textStr 就是传过来的值
};
2.通过通知传值
大体的套路和block差不多 就是创建通知中心 进行通知传值 接收通知传来的值
(1)
//获取通知中心单例对象
NSNotificationCenter * center = [NSNotificationCenter defaultCenter];
//添加当前类对象为一个观察者,name和object设置为nil,表示接收一切通知 给object设置名字 只接受和object名字匹配的通知消息
[center addObserver:self selector:@selector(notice:) name:@"ceshi" object:nil];
(2)
//创建一个消息对象
NSNotification * notice = [NSNotification notificationWithName:@"ceshi" object:nil userInfo:@{@"1":@"123"}];
//发送消息
[[NSNotificationCenter defaultCenter]postNotification:notice];
(3)
//在回调的函数中取出通知的值
-(void)notice:(id)sender{
NSLog(@"%@",sender);
}

相关文章

  • iOS中传值问题

    1.在iOS中正向传值 可以用属性就不多说了,反向传值 从image中传值给controller的时候 我们可以用...

  • iOS页面传值问题(swift2.0篇)

    iOS页面传值问题(swift2.0篇) 同样是介绍iOS开发中的页面传值,此篇与上一篇使用Objective-C...

  • iOS 常用传值方式

    总结 iOS 日常开发中的几种常用传值方式:正向传值代理传值block传值通知传值单例 文章代码:https://...

  • H5调用IOS方法遇到的问题

    h5中的方法: 问题一:postMessage必须传值,即使IOS中的方法并不需要这个值问题二:finish方法写...

  • iOS页面间传值详解(二)

    在iOS页面间传值详解(一)中,介绍了iOS界面间的正向传值以及逆向传值的两种方法,其实逆向传值还可以使用bloc...

  • 【iOS开发细节】之- delegate代理的使用

    在iOS开发中、好多时候需要涉及到页面传值、而传值又分为正向传值和反向传值 一、 传值 1、正向传值 2、反向传值...

  • iOS中的传值方式

    在日常开发过程中,我们经常会遇到值传递。这里,介绍几种iOS开发中常见的传值方式。 1.属性传值 属性传值是iOS...

  • iOS传值方式

    在iOS中,常见的传值方式有以下几种:1.属性传值2.单例传值3.通知传值4.代理传值5.Block这些传值方式,...

  • 为什么要尽量少用通知进行传值

    在IOS的App开发中,传值是必不可少的. 常用的传值方法: 1:正向传值,也就是直接赋值 2:单例传值,其实也就...

  • iOS之传值

    在iOS中传值的方式有很多种方式,有最普遍的就是属性传值,代理传值,block传值等方式了。写了OC和swift的...

网友评论

      本文标题:iOS中传值问题

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