iOS中使用block传值
来源:互联网 发布:国外开源软件 编辑:程序博客网 时间:2024/06/05 20:30
用此方法传值可以替代委托了。具体例子
MainView.h#import <UIKit/UIKit.h>@interface MainView : UIViewController{ IBOutlet UIButton* btn; IBOutlet UILabel* labShow;}-(IBAction)push:(id)sender;@end
MainView.m #import "MainView.h"#import "SecondView.h"@implementation MainView- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { } return self;}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning];}#pragma mark - View lifecycle- (void)viewDidLoad{ [super viewDidLoad];}-(IBAction)push:(id)sender{ SecondView *s = [[SecondView alloc] initwithBlock:Block_copy(^(NSString *str){ NSLog(@"%@",str); labShow.text = str; })]; [self.navigationController pushViewController:s animated:YES]; [s release];}- (void)viewDidUnload{ [super viewDidUnload];}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation == UIInterfaceOrientationPortrait);}@end
Second.h #import <UIKit/UIKit.h>typedef void (^MyBlock)(NSString *);@interface SecondView : UIViewController{ IBOutlet UITextField* txtView; MyBlock my;}-(IBAction)back:(id)sender;-(id)initwithBlock:(MyBlock)str;@end
Second.m #import "SecondView.h"@implementation SecondView-(id)initwithBlock:(MyBlock)str{ self = [super init]; if(self) { my = str; } return self;}-(IBAction)back:(id)sender{ NSString* s = txtView.text; if(my) { my(s); } [self.navigationController popViewControllerAnimated:YES];}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning];}-(void)dealloc{ Block_release(my); [super dealloc]; }#pragma mark - View lifecycle- (void)viewDidLoad{ [super viewDidLoad];}- (void)viewDidUnload{ [super viewDidUnload];}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation == UIInterfaceOrientationPortrait);}@end
0 0
- iOS中使用block传值
- iOS中使用block传值
- iOS中使用block传值
- iOS中使用block传值
- ios 中使用 block
- iOS中-Block使用
- iOS中-Block使用
- ios中怎样使用block
- ios中使用block传参
- iOS中block使用注意事项
- iOS中Block基本使用
- IOS中Block的使用
- 如何在iOS中使用Block
- 如何在iOS中使用Block
- 如何在iOS中使用Block
- 如何在IOS中使用block
- 如何在 iOS 5 中使用 Block
- 如何在iOS中使用Block
- LeetcodeOJ Add Two Numbers
- 多处理机调度问题(NP)
- Android之属性动画(二)
- eclipse 修改设置Ctrl+Shift+F长度
- python验证码识别
- iOS中使用block传值
- 【小明开发一百问】(一)如何制作手机软件演示视频
- Art of Multiprocessor Programming 答案 ch8 p93
- SDK 无法更新解决方案
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- Nexus
- Popupwindow背景颜色变灰色,并点击外部消失
- Android Studio 升级时提示失败解决方案
- 总结的类,抽象类,接口这些。