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

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:41:41
字體:
來源:轉載
供稿:網友

我們可以把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();   } } 


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌宁县| 长治县| 九江县| 文化| 东丰县| 博兴县| 陆丰市| 高平市| 宁化县| 乌兰浩特市| 南宫市| 平塘县| 高尔夫| 海口市| 巴里| 乐清市| 开江县| 井研县| 巴塘县| 青海省| 昭觉县| 灌云县| 黑山县| 元朗区| 文山县| 万源市| 大名县| 临武县| 彰化县| 怀化市| 康保县| 雷波县| 且末县| 喀喇沁旗| 东乡| 临泉县| 澎湖县| 上林县| 藁城市| 车险| 石狮市|