我在一个基于视图的应用程序的类中,一个用一个视图控制器创建。
当我在视图控制器中时,我可以使用self.view访问其视图,但如果我在一个类中,如何访问相同的视图?
[[UIApplication sharedApplication] delegate]... //??? what do I put here?
感谢
答案 0 :(得分:1)
假设视图控制器是应用程序委托的成员。您可以像这样访问它:(“YourAppDelegate”应替换为您的应用程序委托的实际类型名称)
( ( YourAppDelegate *) [ [ UIApplication sharedApplication ] delegate ] ).viewController.view;
答案 1 :(得分:1)
如果你试图给一个单例引用你的主viewController,一个更好的解决方案可能是让你的MyAppDelegate在你的单例上设置一个viewController属性:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
[MySingletonClass sharedSingleton].viewController = self.viewController;
}
如果您打算在多个项目中重复使用像这样的Singleton,那么从AppDelegate设置这些属性通常更有意义。
答案 2 :(得分:0)
子视图实际上不应该操纵父视图,每个类应该管理它自己的视图。
无论如何,如果你的类是UIView的子类并且是viewController的子视图,你可以通过访问superview属性获取viewController的视图来获取你的父视图。