作者hysteresis (magnet)
看板MacDev
标题Re: [问题] navigation的BACK事件(使用delegate)
时间Fri Apr 29 17:06:31 2011
说你需要做这几件事: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
1F:→ yeah200077:你(my)贴广告(protocol)要谁(aNav)去做事(实作method) 05/01 00:05