oc的三種反向傳參方式

2021-08-22 02:31:06 字數 1886 閱讀 2823

一:**傳值 在

nextviewcontroller.h中

// 1,

定製傳值協議

@protocol nextviewcontrollerdelegate

- (bool)nextviewcontrollwithcolor:(uicolor *)color;

@end

// 2,

定義**屬性

@property (weak, nonatomic) id delegate; 在

nextviewcontroller.m中

// 3,

**屬性呼叫**方法

if ([_delegate respondstoselector:@selector(nextviewcontrollwithcolor:)]) 在

viewcontroller.m中

// 4,

遵循**協議

@inte***ce viewcontroller ()

@end

// 5.

實現**方法

#pragma mark nextviewcontroller**

- (bool)nextviewcontrollwithcolor:(uicolor *)color

二:通知傳值 在

nextviewcontroller.m中

// 1,(

傳送值的類

)傳送通知

:單例模式

[[nsnotificationcenter defaultcenter] postnotificationname:@"mynoti" object:[uicolor redcolor]]; 在

viewcontroller.m中

// 2,(

接收值的類

)監聽通知

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(changebackcolor:) name:@"mynoti" object:nil]; 方法

:監聽到通知之後呼叫的方法

- (void)changebackcolor:(nsnotification *)noti

// 3

物件被銷毀的時候會呼叫

- (void)dealloc

三:block傳值 在

secondviewcontroller.h中

//1, 

定義乙個

block: 

返回值(^block名)(

引數型別)

typedef void(^myblock)(uicolor *, bool);

@inte***ce secondviewcontroller : uiviewcontroller

@property (nonatomic, strong) myblock myblock; 在

secondviewcontroller.m中

//2, 

呼叫block傳參,

讓預置塊**執行

_myblock([uicolor redcolor], yes); 在

viewcontroller.m中

//3. 

初始化secondvc

secondviewcontroller *secondvc = [[secondviewcontroller alloc] init];     //

設定預置塊** //

預置**塊

:塊**在跳轉到下乙個控制器的時候並沒有執行,等到下乙個控制器的返回按鈕呼叫了

myblock

得時候才執行。

secondvc.myblock = ^(uicolor *color, bool b) ;

oc的三種反向傳參方式 前進的火車 新浪部落格

一 傳值 在nextviewcontroller.h 中 1,定製傳值協議 protocol nextviewcontrollerdelegate bool nextviewcontrollwithcolor uicolor color end 2,定義 屬性 property weak,nonat...

vue三種傳參方式

子元件通過 route.name接收引數 子元件接收 第二種 通過router link中的to屬性 對應路由配置 通過路由中的name屬性來確定匹配的路由,通過params來傳遞引數 params是乙個物件,裡面是key value的形式 gohome 子元件接收 this.route.param...

react router路由傳參三種方式

react router路由傳參三種方式 通過萬用字元傳參 query傳參和state傳參。1.萬用字元傳參 route定義方式 link元件 萬用字元引數獲取 this.props.match.params.name 優點 簡單快捷,並且,在重新整理頁面的時候,引數不會丟失。缺點 只能傳字串,並且...