ios 页面跳转之间传递数据----通过delegate
来源:互联网 发布:知乎的楠爷李楠 编辑:程序博客网 时间:2024/06/05 09:56
主要参考了这篇博客http://mobile.51cto.com/iphone-284116.htm
主要用到了,两个类,一个delegate
a类,调用b类,当b类执行之后,需要把一个数据传递给a类,a类把这个数据显示出来。
1.delegate,就这一个头文件就足够了。在类中去实现这个代理方法
#import <Foundation/Foundation.h>
@protocolUIViewPassValueDelegate
- (void)passValue:(NSString*)value;
一旦某个类,实现了这个回调函数,这个类就会获取当前的value数据。因此,接收数据的类一定实现一个回调函数。对于当前项目就是passValue
@end
2.第一个页面
.h文件
#import <UIKit/UIKit.h>
#import "UIViewPassValueDelegate.h"
#import "ValueInputView.h"
@interfaceDelegateSampleViewController : UIViewController<UIViewPassValueDelegate>
{
UITextField*_value;
}
@property(strong, nonatomic) IBOutletUITextField*value;
- (IBAction)buttonClick:(id)sender;
@end
.m文件
#import "DelegateSampleViewController.h"
@implementationDelegateSampleViewController
@synthesizevalue = _value;
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
{
self= [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if(self) {
}
returnself;
}
- (void)viewDidLoad
{
[superviewDidLoad];
}
- (void)viewDidUnload
{
[selfsetValue:nil];
[superviewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return(interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)buttonClick:(id)sender
{
ValueInputView* valueView = [[ValueInputViewalloc] init];
valueView.delegate= self;
[selfsetModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[selfpresentModalViewController:valueView animated:YES];
}
-(void)passValue:(NSString*)value
{
self.value.text= value;
NSLog(@"the get value is %@",value);
}
@end
3.第二个类:
.h文件
#import <UIKit/UIKit.h>
#import "UIViewPassValueDelegate.h"
@interfaceValueInputView : UIViewController
{
NSObject<UIViewPassValueDelegate>* delegate;
UITextField* _value;
}
@property(retain, nonatomic) IBOutletUITextField*value;
@property(nonatomic,retain) NSObject<UIViewPassValueDelegate>* delegate;
- (IBAction)buttonClick:(id)sender;
@end
.m文件
#import "ValueInputView.h"
@implementationValueInputView
@synthesizevalue=_value;
@synthesizedelegate;
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
{
self= [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if(self) {
// Custom initialization
}
returnself;
}
- (void)viewDidLoad
{
[superviewDidLoad];
}
- (void)viewDidUnload
{
[selfsetValue:nil];
[superviewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return(interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)buttonClick:(id)sender {
[delegatepassValue:self.value.text];
NSLog(@"self.value.text is %@",self.value.text);
[selfdismissModalViewControllerAnimated:YES];
}
@end
- ios 页面跳转之间传递数据----通过delegate
- ios 页面跳转之间传递数据----通过delegate
- ios 页面跳转之间传递数据----通过delegate
- iOS --- 通过openURL实现APP之间跳转并传递数据
- 客户端跳转 和 服务器端跳转 页面之间的数据传递
- IOS 页面跳转的数据传递方式
- iOS页面跳转及数据传递
- IOS 页面跳转的数据传递方式
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- iOS页面跳转及数据传递
- linux TOP命令各参数详解
- AS 发送事件
- oracle定时任务(dbms_job)
- xcode开发版本管理中各标识号的定义
- php中return,require,include加括号和不加括号的区别
- ios 页面跳转之间传递数据----通过delegate
- Session的生命周期
- 1408141504-hd-Digital Roots.cpp
- java中常用的工具类(三)
- Jmol: an open-source Java viewer for chemical structures in 3D
- 乐视TV宣布,将推出“LePar超级合伙人”计划
- 755 - 487--3279
- HTML5 01 标签的改变
- asp.net页面生存周期之页面的建立