zoukankan      html  css  js  c++  java
  • UISB 多页面传值

    通过代理 delegate 

    VCSecond。h

    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    //定义一个协议 视图控制器二协议
    @protocol VCSecondDelegate <NSObject>
    //定义一个协议函数,改变背景颜色
    -(void) changecolor:(UIColor*) color;
    
    @end
    
    
    @interface VCSecond : UIViewController
    // 定义一个代理对象
    //代理对象执行协议函数
    //通过代理对象实现协议函数 达到代理对象改变本身属性的目的
    //代理对象一定要实现代理协议
    
    
    @property (assign,nonatomic)NSInteger tag;
    @property (assign,nonatomic)id<VCSecondDelegate> delegate;
    
    
    @end

    VCSecond。m

    #import "VCSecond.h"
    
    @interface VCSecond ()
    
    @end
    
    @implementation VCSecond
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        UIBarButtonItem* btn= [[UIBarButtonItem alloc] initWithTitle:@"change color" style:UIBarButtonItemStyleDone target:self action:@selector(pressesChanged)];
        self.navigationItem.rightBarButtonItem=btn;
    }
    
    -(void)pressesChanged{
    //   代理对象调用事件操作
        [_delegate changecolor:[UIColor redColor]];
        
        
        
        
    }
    
    
    
    @end

    VCFirst。h

    #import <UIKit/UIKit.h>
    #import "VCSecond.h"
    
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface VCFirst : UIViewController
    -(void) changecolor:(UIColor*) color;
    
    @end
    
    NS_ASSUME_NONNULL_END
    #import <UIKit/UIKit.h>
    #import "VCSecond.h"
    
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface VCFirst : UIViewController
    -(void) changecolor:(UIColor*) color;
    
    @end
    
    NS_ASSUME_NONNULL_END

    VCFirst。m

    #import "VCFirst.h"
    #import "VCSecond.h"
    @interface VCFirst ()
    
    @end
    
    @implementation VCFirst
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        
        
        
    }
    -(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        
        VCSecond* vc= [[VCSecond alloc] init];
    //    将当前控制器作为代理对象赋值
        vc.delegate=self;
        
        vc.view.backgroundColor = [UIColor orangeColor];
        [self.navigationController pushViewController:vc animated:YES];
        
        
    }
    
    
    -(void)changecolor:(UIColor *)color
    {
        
        self.view.backgroundColor = color;
        
    }
    
    
    @end
  • 相关阅读:
    uestc Can You Help God Wu
    uestc 方老师开橙卡
    【JS】【24】监听鼠标滚轮事件
    【Java】【26】截取字符串
    【HTML&CSS】【5】点击号码可以调用手机拨号功能
    【JS】【23】on()绑定事件和off()解除绑定事件
    【Eclipse】【5】FreeMarker插件
    【Oracle】【18】获取数据库当前用户下所有表名和表名的注释
    【其他】【PL/SQL Developer】【2】报错Initialization error Could not load ".../oci.dll"解决方法
    【JDK】【1】下载官方版本
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/13817899.html
Copyright © 2011-2022 走看看