zoukankan      html  css  js  c++  java
  • iOS 界面间的传值 属性传值 代理传值

    1.属性传值

    从BViewController传到AViewController 

    BViewController.m

    #import "AViewController.h"

    #import "BViewController.h"

    在需要回传的地方传值

    AViewController *a = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-2];

    a.contactId = 需要传的值;

     [self.navigationController popToViewController:a animated:true];

    AViewController.h

    @property (retain, nonatomic) NSString *contactId;

    @property (strong, nonatomic) UITextField *contactIdField;

    AViewController.m

    #import "AViewController.h"

    #import "BViewController.h"

    在点击跳到下一个页面的方法中

        BViewController *b = [[BViewController alloc] init];

        [b release];

        [self.navigationController pushViewController:b animated:YES];

    -(void)viewWillAppear:(BOOL)animated

    {

        self.contactIdField.text = self.contactId ;

    }

    2.代理传值1(yf)

    从BViewController传到AViewController 

    BViewController.h

    #import <UIKit/UIKit.h>

    @protocol BDelegate <NSObject>

    - (void)setIDValue:(NSString *)value;

    @end

    @interface BViewController : UIViewController

    @property(nonatomic, retain) id<BDelegate> delegate; // 注册一个代理

    @end

    BViewController.m

    #import "BViewController.h"

    在需要回传的地方传值   

        [_delegate setIDValue:需要传的值];

        [self.navigationController popViewControllerAnimated:YES];

    AViewController.h

    @interface AViewController : UIViewController

    @property (strong, nonatomic) UITextField *contactIdField;

    @end

    AViewController.m

    @interface AViewController ()<IDDelegate> // 遵守协议

    @end

    在点击跳到下一个页面的方法中

        BViewController *b = [[BViewController alloc] init];

        b.delegate = self;

        [b release];

        [self.navigationController pushViewController:b animated:YES];

    - (void)setIDValue:(NSString *)value // 实现方法

    {

        _contactIdField.text = value ;

    }

    3代理传值(jl)

    从BViewController传到AViewController

    BViewController.h

    #import <UIKit/UIKit.h>

    @protocol BDelegate <NSObject>

    - (void)setIDValue:(NSString *)value;

    @end

    @interface BViewController : UIViewController

    @end

    BViewController.m

    #import "BViewController.h"

    @interface BViewController ()

    @property(nonatomic, retain) id<BDelegate> delegate; // 注册一个代理

    @end

    在需要回传的地方传值

        AViewController *a = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-2];

        self.delegate = a;   // 这里和AViewController 进行交互,下一句代码就是对应的赋值

        [self.delegate setIDValue:需要传的值];

        [self.navigationController popToViewController:a   animated:true];

    AViewController.h

    #import "BViewController.h" // 导入协议

    @interface AViewController : UIViewController<IDDelegate>// 遵守协议

    @property (strong, nonatomic) UITextField *contactIdField;

    @end

    AViewController.m

    在点击跳到下一个页面的方法中

        BViewController *b = [[BViewController alloc] init];

        [b release];

        [self.navigationController pushViewController:b animated:YES];

    - (void)setIDValue:(NSString *)value // 实现方法

    {

        self.contactIdField.text = value ;

    }

  • 相关阅读:
    非常牛的实现三个数交换
    assert后面如果是假则程序崩溃
    python三元操作符
    三种方法划分成绩等级
    爱因斯坦难题
    打印奇数
    判断给到的年份是否为闰年
    【bzoj1895】Pku3580 supermemo Splay
    【bzoj1050】[HAOI2006]旅行comf 并查集
    【bzoj4002】[JLOI2015]有意义的字符串 数论+矩阵乘法
  • 原文地址:https://www.cnblogs.com/pjl111/p/4244858.html
Copyright © 2011-2022 走看看