介面之間2種正向 6種反向傳值方式

2021-06-26 12:23:04 字數 1789 閱讀 3747

正向傳值:

一、利用present 的 block 塊進行正向傳值

rootviewcontroller.m 中:

subviewcontroller* svc = [[subviewcontroller

alloc

]init];

= @"正向block傳值";

//這句是正向的屬性傳值,作用是讓b頁面,能持有a頁面的位址,因b要向a進行反向傳值

//想給誰傳值,就要持有誰的位址

svc.delegate = self;

[self

presentviewcontroller:svc animated:

yescompletion:^];

二、利用ab頁面中的屬性傳值

反向傳值:

一、利用block來進行b 介面向a 介面反向傳值

a 中宣告乙個block 屬性,將所要傳的值放入block  函式指標中,b 去接收

.h檔案

@property(nonatomic,copy) void(^blockcolor) (uicolor *);

.m 檔案

self.blockcolor([uicolor blackcolor]);

注意用 copy

b.m 檔案中接收

svc.blockcolor = ^(uicolor *color);

二、通知中心和觀察者模式反向傳值

例: viewcontroller1 向 viewcontroller2傳值 1.

@property (nonatomic,copy)nsstring *string;2.

[[nsnotificationcenter defaultcenter] postnotificationname:@"

鬼子來了

" object:nil];

3.viewcontroller2 中,向通知中心註冊,新增自己,成為觀察者。當資料改變時,用單例delegate 讀取資料

-(void)becomobserver

//收到廣播訊息後呼叫的方法

-(void)changetext

三、利用協議,介面反向傳值

viewcontroller2為委託方,viewcontroller1為**,

在viewcontroller2 中委託方制定協議,並且屬性delegate = viewcontroller1,要遵循協議;

在viewcontroller1 中,將viewcontroller2物件的屬性delegate 設為自己(vc1)

1.viewcontroller1.m

vc2.delegate = self;

2.viewcontroller2.h檔案

//委託方制定協議,**人必須遵守

@protocol backvaluedelegate

-(void)changetext:(nsstring *)string

@end

@inte***ce viewcontroller1 :uiviewcontroller

//用來設定**,並且遵守協議

@property (nonatomic,retain) iddelegate;

@end

3. viewcontroller2.m 檔案

//利用**去回傳資料

[self.delegate changetext:@"****"];

五、用自己實現的單例進行傳值

六、用targetaction 的方式進行兩個介面來回反覆呼叫傳值

常用的是詳細寫的幾種

IOS四種反向傳值的方法

如下 由根檢視推出子檢視,再由子檢視推出根檢視,在推出根檢視時,子檢視傳乙個color的屬性給根檢視,用來修改根檢視的背景顏色 根檢視控制器 m檔案 void viewdidload void createbutton void btnclick void changecolor uicolor c...

PHP頁面傳值的6種獲取方法

初學php,以前使用asp沒有這些傳值的這麼多說法,更不存在php版本相容的問題,但是php中遇到了。在網上有不少朋友遇到過php傳值的問題,大都是因為看了老php版本的教程但用著新版本的php引起的,這裡icech邊學邊記錄,整理了幾種php傳值的方法,就作為學習筆記了,也希望新學php的朋友少走...

PHP頁面傳值的6種獲取方法

php頁面傳值的6種獲取方法 1 php4以後獲取傳值的方法 一般在頁面中傳值常見的是post get和cookie幾種,所以下面我也主要介紹這幾種。php4以後都採用的是 post get等陣列來獲取網頁傳值。在php3.0及以下版本都是用的是 http post vars http get va...