美文网首页
界面传值ios

界面传值ios

作者: super_2e20 | 来源:发表于2017-12-25 14:29 被阅读0次

一.通知传值 NSNotification

//获取通知中心
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
//制作一个通知
NSNotification *notifi = [[NSNotification alloc]initWithName:@"showtext" object:nil userInfo:nil];
//发送通知
[center postNotification:notifi];
//第二种方式,给一个通知名字和携带对象,通知中心自动创建一个通知,并发送出去
 [center postNotificationName:@"showtext" object:textField.text];  

//捕获通知

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(showText:) name:@"showtext" object:nil];

  -(void)showText:(NSNotification *)notify
  {
UILabel *label = (id)[self.view viewWithTag:10];
//获取通知携带的对象
NSString *text = notify.object;

label.text = text;
 }

二. block传值

1.声明一个block变量

@property(nonatomic, copy) UIColor * (^showText)(NSString * text);

2.实现block

 UIColor *(^myblock)(NSString * text) = ^(NSString *text){
    //在代码块中实现功能
    label.text = text;
  
    return [UIColor redColor];
};
   UIColor *(^myblock)(NSString * text) = ^(NSString *text){
    //在代码块中实现功能
    label.text = text;
  
    return [UIColor redColor];
};

3.调用block

if(_showText){
    //3调用block
    UIColor *color = _showText(textField.text);
    self.view.backgroundColor = color;
}

三.代理传值 delegate

1.声明协议
1.驱动方声明协议《规定实现什么方法》,驱动方声明一个遵循协议的属性

@protocol ShowTextDelegate <NSObject>
@required
- (void)showText:(NSString *)text;
@optional
- (UIColor *) showTextReturnColor:(NSString *)text;
@end

// 2.代理方,要遵循协议,实现协议方法(让代理方知道它要做什么)
 @interface RootViewController ()<ShowTextDelegate>

-(void)showText:(NSString *)text
{
UILabel *label = (id)[self.view viewWithTag:10];
label.text = text;
 }
//3.建立代理关系
svc.delegate = self;
//4.  驱动方驱动代理方法执行协议
  if (_delegate && [_delegate          respondsToSelector:@selector(showTextReturnColor:)]) {
    
 UIColor *color = [_delegate showTextReturnColor:textField.text];
    self.view.backgroundColor = color;
}

相关文章

  • iOS集成ReactNative跳转、传值

    iOS跳转RN界面iOS跳转RN界面传值iOS跳转不同的RN界面(一)iOS跳转不同的RN界面(二)RN界面跳转到...

  • 几种iOS界面之间的传值方式

    几种iOS界面之间的传值方式 一.正向传值方式 (BOOL)application:(UIApplication ...

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

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

  • 界面传值ios

    一.通知传值 NSNotification //捕获通知 二. block传值 1.声明一个block变量 2.实...

  • iOS界面传值

    第一:单例(SingleTon) 自己创建一个继承NSObject的.h和.m文件,例子如下: SingleTon...

  • iOS • 记——代理传值和Block传值的简单对比

    在iOS开发中,两个界面之间的传值是开发中经常会用到,给需要传值的对象,直接定义属性就能传值。传值分为两种,顺传和...

  • iOS中界面传值的几种方式

    1.属性传值 属性传值适用于顺序传值,从前面的界面传值给后面的界面。 2.代理传值 用代理的方式实现界面间传值稍微...

  • IOS开发 多界面传值

    本节学习内容: 1.多界面传值的基本概念 2.多界面传值的方法 3.多界面传值的应用 【多界面传值 属性】 cha...

  • ios界面传值2016.5

    五种方法 1.属性传值,适合界面A到界面B的传值2.单例, 多个界面传值3.通知 , 界面A跳...

  • iOS Block界面传值

    首先在你要传的值的界面写一个Block块 .h文件 typedefvoid(^ReturnValueBlock) ...

网友评论

      本文标题:界面传值ios

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