- 界面通信
- .屬性傳值, 一般用于從前往后傳值邪蛔, 并通過該屬性進(jìn)行一系列操作
- 也從后往前傳值(也可以, 但是不推薦這樣去使用)
- . 協(xié)議傳值(delegate)
- 從后往前傳值 決定要在后邊的類聲明協(xié)議(最難確定)
- 聲明delegate @property id<Delegate名> delegate
- 在哪簽訂協(xié)議(只要拿到對象急黎, 就可以簽訂協(xié)議)XXX.delegate = self
- xxx.delegate = self 會爆黃, 沒有簽訂協(xié)議, 簽訂協(xié)議
- 簽訂完協(xié)議 侧到, 會爆黃的原因是沒有事項(xiàng)協(xié)議方法
- 但是協(xié)議方法沒有執(zhí)行勃教,缺少觸發(fā)時(shí)機(jī)在哪里觸發(fā)協(xié)議方法(對應(yīng)加上判斷);
- .屬性傳值, 一般用于從前往后傳值邪蛔, 并通過該屬性進(jìn)行一系列操作
- 小知識
關(guān)于navigation最終控制器的釋放
navigation中viewController數(shù)組, 數(shù)組對應(yīng)的對象會引用計(jì)數(shù)+1
當(dāng)controller入棧時(shí)匠抗,則被加入數(shù)組中故源,引用計(jì)數(shù)+1
只要不出站, 就不會釋放
A -> push -> B
當(dāng)B - > pop - >A B出棧, 對應(yīng)的數(shù)組中對應(yīng)的對象引用計(jì)數(shù)-1(對 應(yīng)釋放) - 上代碼:
-
第一步:
設(shè)置屬性去接受傳過來的值(在制定協(xié)議的方法里設(shè)置屬性)在.h中設(shè)置不能私有制,
210B9EBF-2443-477B-9A82-A3E8A353C32A.png
在第一個(gè)界面里的push方法里面給屬性賦值
6B9125EB-6272-4E28-8253-F474107FC7DB.png
- 協(xié)議傳值
-
協(xié)議傳值第一步這定協(xié)議和制定協(xié)議方法協(xié)議方法默認(rèn)必須實(shí)現(xiàn)
21EBCB47-6673-418F-AFD6-CEC451AEFE29.png
-
- 小知識
給屬性命名時(shí)不要和系統(tǒng)命名重復(fù)
-
第二步聲明代理人
B6317C50-3256-4FD8-A50B-E6F79AC9A05E.png
代理人語義設(shè)置最好用weak
- 第三步實(shí)現(xiàn)代理協(xié)議方法
觸發(fā)協(xié)議方法(判斷delegate存不存在汞贸,判斷delegate類有沒有實(shí)現(xiàn)協(xié)議方法)
28D24342-CA64-43DB-8EAC-229B7EDDC119.png
- 第四步 簽訂代理
F8BF13D3-AD9D-4781-A4C3-F83084E2D3C2.png
-
第五步設(shè)置代理人
注意:
AE72296B-FD55-4501-B849-00518A1EAD89.png 第六一步 實(shí)現(xiàn)協(xié)議方法
給屬性賦值
3E430FF3-B180-4B4F-840C-4AE8283F1FA9.png
- UIViewController
77098B4C-BA32-4B4F-945D-F7C0FE76C450.png