iOS中几种传值的方式

1.ios里面传值的方式很多中现在介绍几种常用的传值方式:

第一种: 属性传值方式:

首先要建两个controller 分别为 RootviewController和 DetailviewController

在Detailviewcontrooler.h实现的代码:(暴露出属性)

#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController

@property (nonatomic,copy)NSString *textString;//属性传值

@end

在Detailviewcontroller.m里面的实现代码:

@interface DetailViewController ()

@end

@implementation DetailViewController

- (void)viewDidLoad {

[super viewDidLoad];

//添加一个返回按钮

UIButton *backBtn = [[UIButton alloc]initWithFrame:CGRectMake(15,30 , 60, 30)];

[backBtn addTarget:self action:@selector(BACK) forControlEvents:UIControlEventTouchUpInside];

[backBtn setTitle:@"返回" forState:UIControlStateNormal];

[self.view addSubview:backBtn];

//创建一个label,来接收传过来的数值

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 200, 100, 30)];

label.textColor = [UIColor redColor];

label.backgroundColor = [UIColor grayColor];

label.textAlignment = NSTextAlignmentCenter;//对齐的方式

label.numberOfLines = 0; //不分行数

label.text = self.textString;//传值过来

[self.view addSubview:label];

}

-(void)BACK {

[self dismissViewControllerAnimated:NO completion:nil];

}

在Rootviewcontroller.m 的实现代码:

#import "RootViewController.h"

#import "DetailViewController.h"

@interface RootViewController ()

@property (nonatomic,retain)UITextField *textfield;

@end

@implementation RootViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

self.textfield = [[UITextField alloc]initWithFrame:CGRectMake(100, 30, 100, 30)];

self.textfield.backgroundColor = [UIColor grayColor];

self.textfield.layer.cornerRadius = 10.0;

[self.view addSubview:self.textfield];

//创建一个button传递事件

UIButton *custombutton = [[UIButton alloc]init];

custombutton.frame = CGRectMake(110, 100,80, 40);

[custombutton setTitle:@"入栈显示" forState:UIControlStateNormal ];

[custombutton addTarget:self action:@selector(handTap:) forControlEvents:UIControlEventTouchUpInside];

custombutton.backgroundColor = [UIColor redColor];

custombutton.layer.cornerRadius = 10.0;

[self.view addSubview:custombutton];

}

-(void)handTap:(UIButton *)sender{

DetailViewController *detailVC = [[DetailViewController alloc]init];

detailVC.textString = self.textfield.text;//后面的赋值给前面的

[self presentViewController:detailVC animated:NO completion:nil];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

//点击空白处隐藏键盘

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

[super touchesBegan:touches withEvent:event];

[self.view endEditing:YES]; //结束编辑

}

最后自己测试一下就可以成功了!!

第二种Block传值: 遇到问题了暂时没有上传代码了:

时间: 2024-10-01 12:13:45

iOS中几种传值的方式的相关文章

iOS的四种传值方式

传值有四种方法 : 1.属性传值 2.单例传值 3.代理传值 4.block传值 一.属性传值   (前-->后) 1. 后面的界面定义一个属性  存放前一个界面传过来的值 注意:属性定义成字符串还是别的类型 取决于你的需求 2. 后面的界面创建完毕后,为属性赋值(记录需要传递的值) 3. 在需要使用值的地方  使用属性记录的值 4. 通过 定义属性 达到传值目的的方法 称为属性传值 属性传值一般用于 从前一个界面向后一个界面传值 二.单例传值  (万能的传值方式  可以跨多个页面之间进行传值)

iOS 常用四种数据存储方式

iOS 常用四种数据存储方式 在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅, ,使得用户体验更好.下面介绍?一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前?一个方法告诉系统怎么对对象进行编码,而后?一个方法则是告诉系统怎么对对象进行解码.例如对Possession对

UI进阶--iOS中的数据存储常用方式

iOS中的数据存储常用方式: 1.xml属性列表(plist): 2.preference偏好设置; 3.NSKeyedArchiver归档(需要遵守NSCodeing协议); 4.SQLite 3; 5.Core Data; ...... 应用沙盒: 每个iOS应用都有?己的应?沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应?必须待在?己的沙盒里,其他应用不能访问该沙盒(提示:在IOS8中已经开放访问) 应?沙盒的文件系统?录,如下图所示(假设应用的名称叫Layer) 模拟器应?用沙

iOS中几种常用的数据存储方式

自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中, 具体步骤大致如下: 第一步:获得文件即将保存的路径: NSArray*documentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,Y

iOS中几种数据持久化方案

概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite 3 CoreData 沙盒 在介绍各种存储方法之前,有必要说明以下沙盒机制.iOS程序默认情况下只能访问程序自己的目录,这个目录被称为"沙盒". 1.结构 既然沙盒就是一个文件夹,那就看看里面有什么吧

IOS的四种数据存储方式及优劣

IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用到的实例对象. 这个对象中储存了系统中用户的配置信息,开发人员能够通过这个实例对象对这些已有的信息进行改动.也能够依照自己的需求创建新的配置项. 他实际上是存储于文件沙盒中的一个.plist文件,而且没有被系统加密,仅仅是ios6以后不是存于经常使用的文档文件夹下,所以不破解系统是看不到该文件的.所

iOS中3种正则表达式的使用与比较

之前我在博文中介绍过iOS中自带正则表达式的使用( 传送门),后来我发现其实iOS中有三种方式来实现正则表达式的匹配.现在将他们都记录在这里: 1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @“[email protected]163.com”: NSString *regex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredic

[转]iOS 中几种定时器 - 控制了时间,就控制了一切

这篇文章是转载内容,原文地址:http://www.cocoachina.com/ios/20150519/11857.html?utm_source=tuicool 这里的知识点,其实在我们日常开发中还是比较常见的,例如本人之前写过的两篇随笔: NSTimer 的使用:178实现满天飞雪效果 CADisplayLink 的使用:156 UIImageView 和 CADisplayLink 实现 Tom 汤姆猫动画效果的区别(扩展知识:分组(黄色文件夹)和文件夹引用(蓝色文件夹)区别) ---

iOS狂暴之路---iOS中应用的数据存储方式解析

一.前言 前面一篇文章中已经介绍了iOS应用中的视图控制器知识点,而本文不会按照常理来介绍View的知识点,而是先介绍iOS中的数据存储知识点,因为关于View的知识点太多了,后面会连续详细介绍一下.这篇先来看一下iOS中的数据存储功能分析.每一个iOS应用和Android应用一样,都有其对应的沙盒存储自己的数据,但是iOS和Android有一个区别就在于没有SD卡的概念了,也就说在iOS中应用的数据只能保存到自己的沙盒中.这也可以看出来iOS为了应用的安全考虑. 在开发Android的时候都知