iOS 开发之协议-代理传值(2)
接下来为WTowViewController 创建一个.xib文件,步骤以此如下:
a、鼠标右键DelegateByValue,点击New File...
b、然后弹出如下窗口:
这次我们选择iOS > User Interface > View,单击 Next,取名为WTwoViewController,然后Create。
创建好WTwoViewController后,我们让WTwoViewController.xib与WTwoViewController.h关联起来,
按照上图1、2、3的步骤依次进行,选中1,点击2,设置3 Class为WTwoViewController,然后回车,
点击4、按住5 view后边的空心圆,拖动到6 view上,然后松手及
接下来给view上拖一个UITextField和一个UIButton,并给UITextField起名为txtValue,给UIButton设置一个Action,起名为pressChange
步骤如下:
1、分屏显示xib与代码,
2、选择UITextField,并按住control键, 拖动到右侧的代码(WTwoViewController.h)区域,会弹出如下窗口:
为其设置名称,然后点击Connect;
3、同样,选择UIButton,并按住control键,拖动到右侧代码(WTwoViewController.h)区域,会弹出如下窗口:
这次因为是要给UIButton设置点击事件,所以改变1 Connection为Action,然后设置名称,点击Connect。
至此WTwoViewController的窗口视图以设置完成。
同样步骤设置WViewController.xib窗口。
给 view 上拖一个UILabel和一个UIButton,并给UILabel起名为lblValue,给UIButton设置一个Action,起名为pressCasting。
接下来在WTwoViewController.h中定义一个协议,WTwoViewControllerDelegate,并给WTwoViewController定义一个代理,代码如下:
//
// WTwoViewController.h
// DelegateByValue
//
// Created by wzrong on 13-7-20.
// Copyright (c) 2013年 wzrong. All rights reserved.
//
#import <UIKit/UIKit.h>
@protocol WTwoViewControllerDelegate <NSObject>
- (void)changeValue:(NSString *)value;
@end
@interface WTwoViewController : UIViewController
@property (nonatomic, unsafe_unretained) id<WTwoViewControllerDelegate> delegate;
@property (nonatomic, strong) IBOutlet UITextField *txtValue;
- (IBAction)pressChange:(id)sender;
@end
接下来在WTwoViewController.m中的 - (IBAction)pressChange:(id)sender 方法中把代理派发出去,顺便把窗口给销毁,代码如下:
- (IBAction)pressChange:(id)sender {
[self.delegate changeValue:self.txtValue.text];
[self dismissViewControllerAnimated:YES completion:nil];
}
WTwoViewController中的设置已经完成,接下要在WViewController中调用WTwoViewController,并实现WTwoViewControllerDelegate代码。
首先在WViewController.h中实现代理,代码如下:
//
// WViewController.h
// DelegateByValue
//
// Created by wzrong on 13-7-20.
// Copyright (c) 2013年 wzrong. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "WTwoViewController.h"
@interface WViewController : UIViewController<WTwoViewControllerDelegate>
@property (strong, nonatomic) IBOutlet UILabel *lblValue;
相关新闻>>
- 发表评论
-
- 最新评论 更多>>