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之間進行傳值的功能。
轉載于:https://www.cnblogs.com/rollrock/archive/2012/12/08/2808976.html
總結
以上是生活随笔為你收集整理的IOS delegate 委托 使用 两个View之间传数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat下的work目录
- 下一篇: ios开发学习-网络(Networkin