作者aecho (星空下的鲔鱼)
看板MacDev
标题Re: [问题] 关於iphone UIkit delegate的问题
时间Sat Jul 17 07:10:05 2010
※ 引述《markzog21 (残羽星辰)》之铭言:
: 主页mainView (只有一张image 按下去或是过两秒自动跳到userView)
: │
: ˇ
: 使用者主画面userView (程式各种功能)
: 我的问题变成如果mainView就呼叫delegate 的话,会变成mainView 也有delegate的功能
: (如tabBar跟navagationBar)
: 而我在userView的时候又需要delegate的功能
: 所以我想要说在我需要delegate的时候在把他叫出来,而只要秀mainView的时候(有点像程式一
: 开始的动画但因为我可能会包4个不太一样的application所以希望是用View的方式表现)
: 就不用delegate
: 然後我研究了很久都还是卡住...不知道是哪里的想法有误
: 上一篇的推文中说把delegate 设为nil就可以了,但我就是这里不懂= ="
: 要从哪设还有哪可以重新呼叫之类的。
我在想,你可能用了UIView里的beginAnimations:context:
和commitAnimation做动画效果,
然後addSubView:和removeFromSuperView之类的,
替换掉目前的画面。
如果你四个不太一样的app,都是UIViewController,
但在更换不同的画面时,是用上面所说的,
把另一个UIViewController的view,加到另一个上面的话,
这时候,会有一些情形出现。
如mainView的controller是mainController,
另外四个是Acontroller, Bcontroller, ..., Dcontroller。
要用的时候是把A,B,C,D这四个controller的view加到mainController上面去。
因为UINavigation上的top controller还是mainController,
所以像判断水平垂直,
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation
会呼叫mainController里的。
而画面转换到A,B,C,D时,也要记得手动呼叫
- (void)viewWillAppear, - (void)viewDidAppear,
- (void)viewWillDisappear, - (void)viewDidDisappear,
若是用UINavigationController的push和pop ViewController的话,
上述的事情它有做掉了,就不需要额外的操心。也可以少掉一些未知的麻烦。
==========================================================
也可能我会错义了,你真的用四个UIView来做功能。
不过我是觉得用四个UIViewController会比较好。
在MVC的pattern中,UIViewController才是负责model和View沟通的中间者。
--
「当我真心追寻着我的梦想时,每一天都是缤纷的。
因为我知道每一个小时都是在实现梦想的一部分,
当我真实地在追寻着时,一路上我都会发现从未想像过的东西,
如果当初我没有勇气去尝试看来几乎不可能的事,如今我就还只是个牧羊人而已。」
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.233.16
※ 编辑: aecho 来自: 61.216.233.16 (07/17 07:13)
1F:→ markzog21:恩 谢谢解答,我没有用view来作功能啦==" 07/17 15:43
2F:→ markzog21:能那样做到也很强大XD 07/17 15:44