block,代理,通知傳值
A->B B返回值給A;
B.h檔案----------------------
//代理
@protocol returnDelegate <NSObject>
- (void)returnText:(NSString *)str;
@end
//用typedef 定義block
typedef void (^returnBlock)(NSString *);
@interface OneViewController : ViewController
//將block定義為屬性
@property (nonatomic,copy)void(^myblcok)(NSString *);
//typedef定義的block
@property (nonatomic,copy)returnBlock blcok;
//代理
@property (nonatomic,weak) id<returnDelegate> delegate;
@end
B.m
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//屬性block傳
self.myblcok(@"第一");
//typ Block傳
self.blcok(@"第二");
//代理傳
if ([self.delegate respondsToSelector:@selector(returnText:)]) {
[self.delegate returnText:@"第三"];
}
通知傳
[[NSNotificationCenter defaultCenter] postNotificationName:@"textName" object:self userInfo:@{@"text":@"第四"}];
[self.navigationController popViewControllerAnimated:YES];
}
A.m
-
(void)viewDidLoad {
[super viewDidLoad];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notice:) name:@"textName" object:nil];
} (void)notice:(NSNotification*)not{
self.lable4.text = not.userInfo[@"text"];
}
-
(IBAction)btnClcik:(UIButton *)sender {
__weak typeof (self) weakSelf = self;OneViewController *vc = [OneViewController new];
[vc setMyblcok:^(NSString *str) {
weakSelf.lable1.text = str;
}];vc.blcok = ^(NSString *str2){
weakSelf.labletow.text = str2;
};
vc.delegate = self;[self.navigationController pushViewController:vc animated:YES];
}
-
(void)returnText:(NSString *)str{
_lable3.text = str;
}
相關文章
- iOS Block傳值、代理傳值、通知中心iOSBloC
- iOS block 反向傳值iOSBloC
- iOS開發之利用Block逆向傳值iOSBloC
- IOS學習筆記(頁面傳值:屬性傳值,協議代理傳值,閉包傳值)iOS筆記協議
- 代理,通知,kvo
- Flutter多個頁面廣播通知傳值Flutter
- iOS開發之通過代理逆向傳值iOS
- iOS奇思妙想之使用block替代通知iOSBloC
- 鴻蒙傳送訊息通知鴻蒙
- UI基礎(五)之代理、通知的小結UI
- vue父子傳值與非父子傳值Vue
- Java傳參傳值Java
- 元件:非父子間傳值(同級傳值)元件
- iOS開發--通知,代理,KVO的區別,以及通知的多執行緒問題iOS執行緒
- 讓 Emacs shell 命令傳送桌面通知Mac
- 在 django 中使用 firebase 傳送通知Django
- 【Python】釘釘webhook傳送通知PythonWebHook
- iOS傳值iOS
- Vue--子元件互相傳值,子元件來回傳值,傳值反覆橫跳Vue元件
- display屬性值block,inline和inline-block簡單介紹BloCinline
- Android 元件系列-----Activity的傳值和回傳值Android元件
- 值傳遞與引用傳遞
- 值傳遞和引用傳遞
- Vue 元件傳值Vue元件
- java值傳遞Java
- 按值傳遞
- Intent傳值與Bundle傳值的區別(原始碼分析)Intent原始碼
- facebook web端傳送應用通知邀請Web
- [譯] 由 Node.js 傳送 Web 推送通知Node.jsWeb
- rman備份指令碼 傳送郵件通知指令碼
- JDK動態代理物件與被代理物件地址值問題JDK物件
- Vue 路由傳值(傳參)詳解Vue路由
- 網頁間傳值怎麼傳網頁
- JAVA值傳參和引用傳參Java
- Mybatis中List傳值MyBatis
- Vue 元件間傳值Vue元件
- Java只有值傳遞Java
- Fragment傳值到ActivityFragment