国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS中詳解Block作為property屬性實現頁面之間傳值

2020-07-26 02:29:56
字體:
來源:轉載
供稿:網友

我們可以把Block當做Objective-C的匿名函數。Block允許開發者在兩個對象之間將任意的語句當做數據進行傳遞,往往這要比引用定義在別處的函數直觀。另外,block的實現具有封閉性(closure),而又能夠很容易獲取上下文的相關狀態信息。定義Block變量,就相當于定義了一個函數。但是區別也很明顯,因為函數肯定是在-viewDidLoad方法外面定義,而Block變量定義在了viewDidLoad方法內部。當然,我們也可以把Block定義在-viewDidLoad方法外部,例如上面的代碼塊printNumBlock的定義,就在-viewDidLoad外面。

第二個viewcontroller控制第一個button的title

跳轉的時候,button的selector()

- (void)SecondVc{    SecondViewController *svc = [[SecondViewController alloc] init];   // Block 傳值   svc.secondBlock = ^(){     NSLog(@"First->Second");     [self.button setTitle:@"23" forState:UIControlStateNormal];   };   [self.navigationController pushViewController:svc animated:YES];    } 

第二個viewcontroller.h的聲明:

typedef void (^SecondController)(); @interface SecondViewController : UIViewController /** block */ @property (nonatomic, copy) SecondController secondBlock; @end

第二個viewcontroller.m的touchesBegan方法:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{   NSLog(@"second view controller");   if (_secondBlock) {     _secondBlock();   } } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 冕宁县| 信丰县| 霍州市| 民丰县| 师宗县| 柘城县| 芷江| 油尖旺区| 湘乡市| 佛冈县| 彭山县| 沙雅县| 马关县| 黔西县| 夏津县| 康保县| 石渠县| 驻马店市| 保德县| 涪陵区| 娄烦县| 陆丰市| 徐闻县| 和政县| 佛山市| 个旧市| 西畴县| 博乐市| 磐石市| 华亭县| 白河县| 察雅县| 屏南县| 阿荣旗| 崇州市| 平谷区| 宿州市| 岑巩县| 丁青县| 微博| 南澳县|