• IOS delegate 委托 使用 两个View之间传数据


    今天讲述 delegate 的使用,并给出例子来说明如何使用delegate在两个View之间传送数据

    1.建立一个 single view 工程 

    2.在viecontroller.xib文件里面放上一个button  以及一个 textfield控件

    3.新建一个 objective-c protocol文件(在向导里面有这个选项的)

    4.实现protocol如下

    #import <Foundation/Foundation.h> 

    @protocol UIViewPassValueDelegate <NSObject>

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

    @end

    5.在viewcontroll.h修改如下

    #import <UIKit/UIKit.h>

    #import "UIViewPassValueDelegate.h"

    @interface CRViewController : UIViewController<UIViewPassValueDelegate>

    {

        UITextField * textValue;

    }

    @property(retain,nonatomic) IBOutletUITextField * textValue;

    -(IBAction)buttonPressed:(id)sender; 

    @end

    6.在viewController.m中实现如下

    @synthesize  textValue;

    //这里是对协议的实现

    -(void)passValue:(NSString *)value

    {

        self.textValue.text = value;

    }

    //这里是button按下去的触犯时间,其中CRAAViewController 是另外的一个view,后面会定义

    -(IBAction)buttonPressed:(id)sender

    {

        CRAAViewController * aaView = [[CRAAViewControlleralloc] initWithNibName:@"CRAAViewController"bundle:[NSBundlemainBundle]];

        aaView.delegate = self;

        [selfsetModalTransitionStyle:UIModalTransitionStyleCoverVertical];

        [selfpresentModalViewController:aaView animated:YES];

    }

    7.新建一个 objective-c class  继承自 UIViewController  并选择构建xib

    实现头文件如下:

    #import "UIViewPassValueDelegate.h"

    @interface CRAAViewController : UIViewController

    {

        id<UIViewPassValueDelegate> * delegate;

    @property(nonatomic,assign) id<UIViewPassValueDelegate> * delegate;

    -(IBAction)buttonClicked:(id)sender;

    @end

    8.在.m文件里面实现如下:

    @synthesize delegate;

    -(IBAction)buttonClicked:(id)sender

    {

        [delegate passValue:@"123456"];

        [selfdismissModalViewControllerAnimated:YES];

    }

    当然,上面有些东西没有讲到,比如将textfield以及button与变量的关联等

    以上的功能主要是这样的:点击第一个视图,跳转到第二个视图,然后点击第二个视图回到第一个视图,并将第二个视图里面的值传回到第一个视图

    也就实现了利用delegate在不同的view之间进行传值的功能。

  • 相关阅读:
    ExternalInterface.addCallback()方法,as2 和 as3的区别
    关于table的display问题
    关于table的display问题
    js表单验证是否空值的简单处理办法
    《那些年啊,那些事——一个程序员的奋斗史》——112
    《那些年啊,那些事——一个程序员的奋斗史》——111
    《那些年啊,那些事——一个程序员的奋斗史》——113
    《那些年啊,那些事——一个程序员的奋斗史》——115
    《那些年啊,那些事——一个程序员的奋斗史》——112
    《那些年啊,那些事——一个程序员的奋斗史》——115
  • 原文地址:https://www.cnblogs.com/rollrock/p/2808976.html
Copyright © 2020-2023  润新知