5種傳值方式

2021-07-09 10:09:15 字數 1393 閱讀 1813

//1.傳值方式

//1.屬性傳值: 從前乙個頁面向後乙個頁面傳值

//a.在後乙個頁面, 根據傳值的型別和個數, 寫屬性

//b.在前乙個頁面, 為屬性賦值

//c.在後乙個頁面, 使用值

//2.**傳值: 從後乙個頁面向前乙個頁面傳值

//後乙個頁面(找**)

//a. 制訂協議

//b. 寫delegate 屬性

//c. 在合適的時候, 讓**協議執行方法

//3.前乙個頁面(成為**)

//a.建立關係

//b.遵守協議

//c.實現協議方法

//4.單例傳值: 多個頁面間的傳遞

//a.建立單例類

//b. 根據引數的個數和型別, 在單例中寫屬性

//c. 內容存入單例

//d. 從單例中取內容

//缺點:

//a.建立物件時, 必須使用單例方法, 不能使用 alloc + init

//b.單例到程式結束才釋放, 內部不能放過大的資料.(應用從頭到尾都要用, 就設定為單例)

傳值: 從後乙個頁面到前乙個頁面(只要能寫成**傳值,都可以寫成 block 傳值)(一般更簡單)

//後乙個頁面

//a.對 block 型別, 重新命名

//b.寫 block 屬性

//c.在合適的 時候, 呼叫 block

//前乙個頁面

//a.為 block 賦值

//求兩個整數之和的 block

//前面兩個值表示, 引數型別; 後面表示引數

// int(^sum)(int, int) = ^(int a, int b) ;

// nslog(@"%d", sum(2,3));

//重新命名,引數型別重新命名

typedef

int(^sum)(int, int);

sum sum = ^(int a, int b) ;

sum(2,5);//呼叫使用

box *box = [box defaultbox];

nslog(@"%@", box);

box *box1 = [box defaultbox];

nslog(@"%@", box1);

// box *box3 = [[box alloc] init];//錯誤的

//比如:

// [uiscreen mainscreen]

//uiviewcontroller的生命週期(乙個物件從建立到消亡的過程)

+ init

//注:1238, 只會執行一次; 4567:執行多次

return

yes;

} 多練!!!!

IOS三種傳值方式

1 建立乙個協議 protocol 2 在a中宣告協議 property nonatomic,assign id bdelegate 3 在a中呼叫協議 ibaction gobackbtn uibutton sender self dismissviewcontrolleranimated yes...

WebForm aspx頁面傳值 7種方式

1 get方式 傳送頁protected void button2 click object sender,eventargs e 接受頁this.label1.text webform1.statest 5 context.handler 獲取控制項 傳送頁protected void butto...

vue元件傳值的五種方式

方法一 props傳參 父元件1.2.3.我是father元件 4.9.arr arr 10.11.12.子元件 1.2.我是son元件 3.4.方法二 事件傳遞 父元件1.2.3.我是father元件 4.5.6.8.子元件 1.2.3.我是son元件 4.5.7.方法三 事件監聽 父元件1.2....