對於不一樣的viewcontroller之間數據的共享和處理
ios
採用代理的方式,子viewcontroller設計代理協議,並定義協議接口,父viewcontroller實現協議接口,實現子視圖控制器退出時將相關數據更新到父視圖中app
採用ios的消息機制,父viewcontroller註冊消息,子viewcontroller發送消息,觸發父viewcontroller的消息處理oop
採用database做爲數據中間的存儲媒介,子viewcontroller將狀態數據存入DB,父viewcontrller從DB獲取數據更新viewui
採用ios的NSdefault存儲;spa
經過appdelegate中定義全局變量實現中間數據的存儲設計
注:代理
第一,使用反向代理舉例:兩個viewcontroller之間,讓視圖二退出時視圖一擁有視圖二的顏色;對象
這裏要解決兩個問題:第一,視圖二退出時,讓視圖一本身將顏色改掉,毫無疑問,視圖一這個類須要增添方法;繼承
這個方法只能是視圖二來設計代理協議,並定義協議接口;第二,傳值問題,在進入第二個視圖以前,第二個視圖需將代接口
理設置爲視圖一,爲後面視圖二來調用事件時,代理來調用代理已經實現的方法作鋪墊;
比較正向代理的思路:這個是在ui中順序執行的狀況下;在oc階段遇到person class兩個類,咱們經過person設計協
議,定義協議接口是person,那麼讓班級實現把這個person對象添加到班級名錄中的方法;
第二:appdelegate這裏是UI中的實現runloop的單例,對於單例,咱們本身也能夠寫一個sharedInstance;注意和自
己寫一個單例類同樣,傳值時,appdelegate,sharedInstance都須要擁有要傳的數據的字段屬性;
第三:這裏牽涉到協議@protocal首先在oc中沒有多態,多繼承;經過@peotocal的方式實現多態;協議誰來作,誰實
現,其對應的頭文件中用角括號添加協議名;然後引入代理,老闆類在本身的頭文件引入需來作這份協議差事的代理字段
屬性,並在老闆類實現文件中引入協議頭文件(而在代理類由於頭文件角括號引入了協議,因此其對應實現文件不需再加
協議頭文件);