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

2021-10-10 12:04:18 字數 1863 閱讀 7066

一:**傳值

在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...

Vue路由傳參的三種方式

第一種 父元件 getdescribe1 id 路由 另外路由需要配置,在path中新增 id來對應 router.push 中path攜帶的引數 這種方法引數值會跟在url後面,子元件通過this.route.params.id獲取傳過去的引數 第二種父元件 通過路由屬性中的name來確定匹配的路...