我滥用UIViewController子类吗?

时间:2011-04-17 03:25:28

标签: iphone cocoa-touch ios uiview uiviewcontroller

在试图弄清楚为什么没有在我的应用程序中调用viewWillAppear时,我遇到了一个可能是我对UIViewController子类的预期用途的严重误解。

根据以下帖子viewWillAppear does not run when using addSubView!以及此博客文章的链接:http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/ UIViewController子类化应该只在非常具体的情况下发生。最值得注意的是直接添加到UIWindow或其他Apple创建的自定义控制器,如UINavigationControllers。

我肯定会将UIViewController子类的视图添加到其他UIViewController子类的视图中。

事实上,我认为这或多或少是苹果公司实施MVC的整体想法......一个整体的风险投资公司,还有其他风险投资公司,都很乐意让他们的代表方法得到称呼。

如果在应用程序中有很多视图(根据定义需要控制)来来往往,并且在该帖子中描述的模型中有很多屏幕,每个screenfull应该有一个主VC子类,包含所有子视图由自定义控制器(恰好控制视图)控制,它们是简单NSObject的子类。

在这种情况下,UIViewControllers应该只是直接到Window或UINavigationController,UITabBarController等?

您是否可以保证在这种情况下调用UIVC Delegate方法?当viewcontroller的视图是另一个VC的子视图时,这与手动调用委托方法有何不同?

老实说,这似乎是浪费时间。 ViewDidLoad,viewDidLoad,viewDidUnload,viewWillAppear,viewWillDisappear的自定义实现更不用提及像“查看”这样的属性这样的简单...

所以基本上,要么我完全错了,要么就是在疯狂追逐。如果不能指望UIViewController子类调用viewWillAppear,为什么不手动调用该方法,并完成它?

为什么要复制UIViewController的所有感知功能?

1 个答案:

答案 0 :(得分:38)