ios delegate传值

3 篇文章 0 订阅

楔子
iOS里不同View之间传值有多种方式,常用的一种是delegate。具体如下:

概述
delegate典型应用场景如下:由OneView进入TwoView,在TwoView里输入值后,传回到OneView中。工程文件结构如下
在这里插入图片描述
步骤
1.定义delegate
Xcode-File-New-File选择Objective-c File,点击next,在File Type:中选择Protocol,next后即可创建一个delegate。

#import <Foundation/Foundation.h>

@protocol PassValueDelegate <NSObject>
- (void)passValue:(NSString *)string;

@end

2.在OneViewController中实现delegate

OneViewController.h

#import <UIKit/UIKit.h>
#import "PassValueDelegate.h"

@interface OneViewController : UIViewController<PassValueDelegate>

@end

OneViewController.m

- (void)mybuttonPressed {
    TwoViewController *twoVC = [[TwoViewController alloc] init];
    twoVC.delegate = self;//设置第二个ViewController的delegate为self
    [self.navigationController pushViewController:twoVC animated:YES];
}

3.在TwoViewController中国年声明一个遵循PassValueDelegate的Object对象

TwoViewController.h

#import <UIKit/UIKit.h>
#import "PassValueDelegate.h"

@interface TwoViewController : UIViewController

@property (nonatomic, weak) NSObject<PassValueDelegate> *delegate;

@end

TwoViewController.m

- (void)mybuttonPressed {
    [self.delegate passValue:self.myTextField.text];
    [self.navigationController popViewControllerAnimated:YES];
}

注意:以上实现了使用delegate在两个VieController之间传值,这种场景一般应用在进入子界面输入信息后传回给第一个界面的情况,比如修改用户个人信息,点击修改进入修改界面,修改完后回到显示界面显示修改后的结果。需要重点注意步骤2中的twoVC.delegate = self;和步骤3中的[self.delegate passValue:self.myTextField.text];这两行代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值