iOS ViewController之间传值方法二(利用NSUserDefaults)

原创 2015年11月19日 23:33:02

2.利用NSUserDefaults在两个ViewController之间传值

iOS中利用NSUserDefaults在两个或多个界面之间传值。其中NSUserDefaults支持的数据类型有:NSNumber(NSInteger,Float,Double),NSString,NSDate,NSArray,NSDictionary,BooL.

以NSArray为例子,

在A界面

    //A界面利用NSUserDefault方式传一个数组

    NSArray *myArr = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",nil];

    //赋值

    [[NSUserDefaultsstandardUserDefaults]setObject:myArrforKey:@"getArr"];


  在B界面

    //B界面获取arr

    NSArray *newArr = [[NSArrayalloc]init];

    //取值

    newArr = [[NSUserDefaultsstandardUserDefaults]objectForKey:@"getArr"];

    NSLog(@"%@----------",newArr);

-----最后关于NSUserDefaults的存储?

 其实它存储在应用程序内置的一个plist文件里,这个可以根据路径看到。

 比如说这个是你的程序沙盒位置
   /UsersLibrary/Application Support/iPhoneSimulator/4.1/Applicati*****/29788E40-AF47-45A0-8E92-        3AC0F501B7F4/,(这个是应用程序对应在mac上的位置)
   这个下面有/Library/Prefereces,里面有个plist文件,存储的就是你的userDefaults
   想要删掉的话,用removeObjectForKey或者删掉沙盒,也就是你的应用程序然后重新安装。
--------怎样移除NSUserDefaults?
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"getArr"]; 
----------同步
[[NSUserDefaults standardUserDefaults]synchronize];同步,
作用:如果程序意外退出, NSUserDefaultsstandardUserDefaults数据不会被系统写入到该文件,所以,要使用  [[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步到文件里,来避免数据的丢失。


版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS ViewController之间传值方法五(使用block)

5.使用block在ViewController之间传值 在B页面 .h文件 @interface TwoViewController : UIViewController //定义一个blo...
  • xuepan1994
  • xuepan1994
  • 2015年11月24日 23:20
  • 672

iOS ViewController之间传值方法四(利用Delegate)

3.利用Delegate在两个或多个ViewController之间传值 在A界面       .h文件 @protocol secondViewDelegate -(void)passView...
  • xuepan1994
  • xuepan1994
  • 2015年11月22日 20:16
  • 1184

iOS UIViewController之间的传值方式之一:委托代理

iOS开发中经常需要在2个控制器之间传递数值,例如:aViewController上有一个label标签,bViewController有一个TextField等待用户输入,并且将用户输入的内容显示到...
  • gongqiuwei08
  • gongqiuwei08
  • 2015年01月23日 00:19
  • 647

ViewController之间通信,传递参数

从FirstViewController跳转到SecondViewController,当从SecondViewController返回时,如果想把数据回传给FirstViewController,可...
  • u013993802
  • u013993802
  • 2016年10月13日 11:38
  • 835

Swift编程(二):UIViewController之间的传值以及闭包回调传值

知识背景: 在日程开放中页面传值是最为常见的,(具体动画特效见我的我的GitHub ) 效果图 学习目标: 学习闭包的使用学习页面传值FirstViewController --> Secon...
  • u012678420
  • u012678420
  • 2016年07月14日 11:37
  • 1140

IOS—两个ViewController间传值(逆向传值)

上一篇 两个ViewController间传值中说明了如何从A传值到B,这次要讲的是如何从A进入B,在B输入值后回传给A,这类似于Android中的利用Activity的onActivityResul...
  • qq_17007915
  • qq_17007915
  • 2015年10月22日 11:32
  • 847

一、总结几种关于ViewControllers之间传值的方式(从父视图向子视图传值)

接触ios时间很短,遇到很多问题,ViewController之间的传值方式是其中一个比较疑惑的问题之一 经查阅apple developer library,总结出以下几种传值方式(若有错误或者不对...
  • u013432724
  • u013432724
  • 2014年02月23日 23:13
  • 718

使用Segue在两个UIViewController之间建立联系-NavigationController

先建立两个不同的UIViewCOntroller Editor--Embed in---Navigation Controller NavigationController被嵌入左边那个M...
  • lsm135
  • lsm135
  • 2015年11月11日 23:38
  • 588

IOS之UIViewController执行返回操作并传递参数值的两种方式

举个例子,第一个page(即UIViewController)显示天气,需要对所在地进行设置,这就需要跳转到第二个page,选择好所在地之后,将所在地信息(即返回参数)传回第一个page。 ...
  • heng615975867
  • heng615975867
  • 2014年09月02日 14:15
  • 8972

block在俩个UIViewController间传值

最近刚学了几招block 的高级用法,其实就是利用block语法在俩个UIViewController之间传值,在这里分享给初学者,同时也方便我自己理解。我们知道UINavigationControl...
  • wsh7365062
  • wsh7365062
  • 2015年07月08日 09:00
  • 675
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS ViewController之间传值方法二(利用NSUserDefaults)
举报原因:
原因补充:

(最多只允许输入30个字)