Re: [問題] navigation的BACK事件(使用delegate)

看板MacDev作者 (magnet)時間14年前 (2011/04/29 17:06), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
說你需要做這幾件事:1。和正妹1去墾丁;2。和正妹2一起玩wow;3。和正妹3去看電影;4。做功課;5。考試 其中你只願意做1/2/3,所以你決定找一個小弟(delegate)幫忙做4/5。於是你貼了一個招工廣告(protocol),上面列出了你要求應聘者需要滿足的條件(methods)。。。 ※ 引述《wfgh (lyle)》之銘言: : 最近才剛學會delegate用法 : 小弟也是初學者 : 有錯還請板上各位前輩指正 : =============== 以下切入正題 ===================== : 假設foo有兩個member如下 : @interface foo : NavigationController *aNav; : MyViewController *myViewController; : @end : ================以下code都implemet在foo.m============================ : 在foo裡的某段code,我們讓aNav push了一個view : [aNav pushViewController:aViewController animated:YES]; : 如果之後要在foo裡處理pop view這件事的話 : (意即在foo裡叫aNav去pop view) : 我們就要在assign一個delegate給myViewController : 而這個delegate就是self : myViewController.delegate = self; : 因為myViewController要問foo:「請問pop view這件事怎麼做」 : 然後foo就會去call我們處理pop view的method : 所以在foo.m裡要寫一個處理這件事的method : - (void)popView : { : [self.aNav popViewControllerAnimated:YES] : } : ===========以下implemet在MyViewController.m========================= : 那麼myViewController要怎麼問foo呢? : 就在你想要pop的地方 : 寫上 : [self.delegate popView]; : 這他就會去call foo的popView了 : (其實也可以寫成[self.aNav popViewControllerAnimated:YES]; : 只不過為了更強調delegate好用的地方 : 所以特意多寫一個method) : ============================================================== : 以上就是一個delegate的例子 : 當然以這例子來講 : 不需要用到delegate : myViewController就有一個property是他的parent了 : 只在這樣寫就可以pop了 : [self.navigationController popViewControllerAnimated:YES]; : ========================================================== : 當你寫了很多class : 物件裡又包了很多層物件的時候 : 就是delegate發揮的時候了! : 以上 : 有錯請指正 : 感謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 137.132.191.166

05/01 00:05, , 1F
你(my)貼廣告(protocol)要誰(aNav)去做事(實作method)
05/01 00:05, 1F
文章代碼(AID): #1Dkd-R-5 (MacDev)
文章代碼(AID): #1Dkd-R-5 (MacDev)