ios 传值方法

一丶单利传值
1.创建继承NSObject的Single文件.h中

//通过类方法创建单利对象

+(instancetype)sharedInstance;

//创建字符串 存值拿值
@property (nonatomic,strong) NSString *Zhi;

.m

+(instancetype)sharedInstance{
    
    //通过静态变量的方式创建变量
    static Single *shareVC = nil;
    
    //判断变量是否有值
    if(shareVC==nil){
        shareVC=[[Single alloc]init];
    }
    return shareVC;
}

2.在要进行传值的界面中导入头文件Single.h

//通过单例对象反向传值
    [Single sharedInstance].Zhi=self.textF.text;

3.在接收值的界面中导入头文件Single.h

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    self.textF.text=[Single sharedInstance].Zhi;
}

二丶代理传值
1.如果我想把第二界面值传到第一界面在.h中

// 委托方创建一个协议
@protocol passValueDelegate <NSObject>

//创建一个传值方法(字符串)
-(void)passValue:(NSString *)str;

@end
NS_ASSUME_NONNULL_BEGIN

@interface NextViewController : UIViewController

//定一个持有协议的id指针
@property (weak)id<passValueDelegate>delegate;

@end

NS_ASSUME_NONNULL_END

2…m中返回方法中

-(void)Tiaozhuan{
    //找到协议里的方法
    [self.delegate passValue:self.textF.text];
    
    [self.navigationController popViewControllerAnimated:YES];
}

3.第一个界面中

//签订协议
@interface ViewController ()<passValueDelegate>


//在跳转第二个界面中
#pragma mark 跳转
-(void)Tiaozhuan{
    NextViewController *next=[NextViewController new];
    //实现代理
    next.delegate=self;
    
    [self.navigationController pushViewController:next animated:YES];
    
}

4.调用方法

//调用协议方法
-(void)passValue:(NSString *)str{
    NSLog(@"我看看%@",str);
    self.textF.text=str;
}

三丶block传值
1.如果我想把第二界面值传到第一界面在.h中

//创建block对象

@property (copy) void (^block)(NSString *str);

2…m中

//点击按钮返回
-(void)Tiaozhuan{
    //通过Block传值
    self.block(self.textF.text);
    
    [self.navigationController popViewControllerAnimated:YES];
}

3.在要跳到第二个界面的方法中实现block方法

#pragma mark 跳转
-(void)Tiaozhuan{
    NextViewController *next=[NextViewController new];
    next.block = ^(NSString *str){
        self.textF.text=str;
    };

    
    [self.navigationController pushViewController:next animated:YES];
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值