Re: [問題] navigation的BACK事件(使用delegate)
說你需要做這幾件事: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
05/01 00:05, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章