最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS中詳解Block作為property屬性實(shí)現(xiàn)頁面之間傳值

 更新時(shí)間:2018年02月12日 08:51:44   投稿:laozhang  
這篇文章主要介紹了iOS中Block作為property屬性實(shí)現(xiàn)頁面之間傳值的相關(guān)知識點(diǎn),以及代碼分享,一起學(xué)習(xí)下吧。

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

第二個(gè)viewcontroller控制第一個(gè)button的title

跳轉(zhuǎn)的時(shí)候,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]; 
   
} 

第二個(gè)viewcontroller.h的聲明:

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

第二個(gè)viewcontroller.m的touchesBegan方法:

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

相關(guān)文章

最新評論

佛山市| 图们市| 重庆市| 宁化县| 宁化县| 天台县| 惠水县| 上饶县| 磐安县| 彰武县| 芜湖县| 永德县| 仪征市| 修文县| 额济纳旗| 肇州县| 郁南县| 尚志市| 乐陵市| 陈巴尔虎旗| 苏尼特左旗| 扎兰屯市| 西畴县| 玉树县| 通州市| 和顺县| 莲花县| 腾冲县| 灵川县| 汝城县| 枞阳县| 教育| 塔城市| 青神县| 南靖县| 台东市| 武山县| 宜丰县| 上栗县| 沁源县| 当涂县|