iOS开发 两个视图之间值传递的常用方法<五>

本文详细介绍了iOS中视图之间传值的五种常用方法,包括使用单例模式来实现数据共享,并通过实例代码展示了如何在不同视图控制器间传递数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

五、视图之间传值方法——单列

思路:定义一个单列,里面包含了name 和old属性
这样在视图控制器1和视图控制器里面定义的这个单列对象都是一个对象,所以让视图控制器1的name和old属性等于这个单列对象的对应属性,然后在视图控制器2中定义的单列对象的属性等于对象的textfield里面的内容,这样在视图控制器1里面的name和old 就是视图控制器2里面的输入的内容。
这里写图片描述

1、首先抽象一个单列类Singleton

.h文件


@interface Singleton : NSObject

@property(nonatomic,copy)NSString *name;
@property(nonatomic,copy)NSString *old;
+(Singleton *)defaultSingleton;
@end

.m文件:

static Singleton *userInfor = nil;
@implementation Singleton

+(Singleton *)defaultSingleton
{
if (userInfor == nil) {
userInfor = [[Singleton alloc]init];
//默认
userInfor.name = @”姓名”;
userInfor.old = @”年龄”;
}
return userInfor;
}
@end

视图控制器1:
.h文件:

@interface FirstController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *nameLable;
@property (weak, nonatomic) IBOutlet UILabel *oldLable;

@end

.m文件:

@implementation FirstController
//按钮响应事件  跳转到视图控制器2 你当然也可以用代码创建视图控制器,然后push 到下一个视图控制器,或者用模态视图的presentviewcontroller 方法来进行跳转 
- (IBAction)buttonAction:(UIButton *)sender {

    [self performSegueWithIdentifier:@"push" sender:nil];
}

-(void)viewWillAppear:(BOOL)animated
{
    Singleton *singleton = [Singleton defaultSingleton];
    _nameLable.text = singleton.name;
    _oldLable.text = singleton.old;

}
@end

视图控制器2:
.h文件:

@interface SecondController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *nameText;
@property (weak, nonatomic) IBOutlet UITextField *oldText;

@end

.m文件:

@implementation SecondController

-(void)viewWillDisappear:(BOOL)animated
{
    Singleton *singleton = [Singleton defaultSingleton];
    singleton.name = _nameText.text;
    singleton.old = _oldText.text;
}

@end

在这里就讲了5种视图之间传值常用的方法,所以的代码在我的资源http://download.youkuaiyun.com/detail/moxi_wang/9040615里面都是免积分下载的(这论坛的大部分资源需要积分,不是很方便),有疑问的可以发邮件:auto_zch_wang@163.com 或者留言
这几种思想其实就是iOS里面的几种常见 的设计模式,由于我都是在故事板里面之间画的 ,如果你不习惯这种,那么您可以用模态视图的方法跳转或者用导航控制器的push方法跳转,核心代码一模一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

moxi_wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值