IOS开发之页面间传值的几种小方法

最正经的页面间传值方式莫过于代理传值,今天写的几种小方法不包括代理传值,因为是自学的原因,现在都不知道这几种方法的优缺点,往知道的朋友指正一下;

 

第一种:属性传值;(这种方法在故事版无效,适合纯代码编写时使用,为什么???)

    前提:比如说有两个视图控制器:AViewController和BViewController,他们之间想从A传值到B,

    ——》在AViewController.m文件中

           (1)导入BViewController

           #import "BViewController.h"

           (2)定义全局变量

           比如:我们在A中加一个UITextfield控件,将他的值传递到B

@property (nonatomic, strong) UITextField *text;

 

 

           (3)需要传值的地方编码

    BViewController *Bvc = [[BViewController alloc] initWithNibName:nil bundle:nil];
    //赋值
    Bvc.chuanzhi = text.text;
    //跳转
    [self.navigationController pushViewController:Bvc animated:YES];

 

 

         ——》在BVIewController.h文件中

          定义上一步编码时,赋值时Bvc.chuanzhi 的变量就是我们需要在.h文件中定义的;

@property (nonatomic, strong) NSString *chuanzhi;

 

     ——》在BViewController.m文件中

          这样我们就可以在B中随处使用传递过来的值;

 

 

第二种:segue传值;

前提:比如说有两个视图控制器:AViewController和BViewController,他们之间想从A传值到B,它们之间的连线Identifier:aTob

 

  ——》AViewController.m文件中

     (1)打开下面这个方法

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

   

    (2)在其中进行传值

       

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    
    if([segue.identifier isEqualToString:@"aTob"])
    {
        id theSegue = segue.destinationViewController;
        //赋值
        [theSegue setValue:@"A页面的值" forKey:@"自己的KEY"];

    }
}

    

     ——》在BviewController中的操作和上一种方法一样

 

 第三种:用NSUserDefaults传值;

 

       ——》AViewController中

      需要传值的地方编码

    //存储数据
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"A界面需要传递的值" forKey:@"自己的KEY"];

    //设置同步
    [defaults synchronize];

 

      ——》BViewController文件中

        在ViewDidLoad中编码读取传递过来的值

 

    //读取A界面传递过来的值
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    self.userId = [defaults valueForKey:@"自己的KEY"];

 

 

       

转载于:https://www.cnblogs.com/czjie2010/p/4539841.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值