访问视图控制器的视图

时间:2010-04-20 00:14:55

标签: iphone iphone-sdk-3.0

我在一个基于视图的应用程序的类中,一个用一个视图控制器创建。

当我在视图控制器中时,我可以使用self.view访问其视图,但如果我在一个类中,如何访问相同的视图?

[[UIApplication sharedApplication] delegate]... //??? what do I put here?

感谢

3 个答案:

答案 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的视图来获取你的父视图。