首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIWindow UIView addSubview问题

UIWindow UIView addSubview问题
EN

Stack Overflow用户
提问于 2011-09-25 09:24:26
回答 3查看 4K关注 0票数 2

我读过的每一个视频教程和书籍都会显示以下代码来向UIWindow添加UIView。

window addSubview:self.viewController.view;

我对上面代码的理解是,在窗口(UIWindow的实例)中添加了一个“视图”(它是一个UIView的实例)。让我来分析一下(根据我的理解):

window (UIWindow) addSubview (向窗口添加视图的方法) Self.viewController.view (只是返回已经在UIViewController类中实例化的“视图”的一个实例。

我遇到的第一个问题是在apples站点上的UIWindow类参考文档中找不到方法"addSubview“。然而,有人好心地向我指出,UIWindow继承了UIView的addsubview方法。这一切都很好,但是为什么所有的书籍和在线文档都声明addsubview方法为窗口添加了一个视图--但这怎么可能呢?真的很困惑。有人能一步一步地解释一下这段代码是做什么的吗?如果UIWindow继承了UIView的addsubview方法,那么它如何返回继承树呢?真的迷路了。我真正需要的是小的例子代码与正在发生的事情一步一步的图表。那就太好了。非常感谢

EN

回答 3

Stack Overflow用户

发布于 2011-09-25 10:10:30

可以将窗口看作是与屏幕或绘图对象直接关联的视图。

在上面的例子中,window.view是不正确的。窗口不包含视图,它是具有附加行为的视图。

假设您正在从一个NIB文件加载一个UIViewController,与该viewController相关联的视图将通过访问该视图来实例化。所以..。

您可能会看到如下代码

代码语言:javascript
复制
MyViewController *vc = [MyViewController alloc]initWithNibName:@"MyNibFile" bundle:nil]autorelease];
[window addSubView:vc.view];
[window makeKeyAndVisible];

视图只是一个窗口的超类,所以你可以使用任何公共视图方法。

通常,AppDelegate对象中的窗口是在加载MainWindow.xib文件时实例化的。

您应该会看到类似这样的内容

代码语言:javascript
复制
@property(nonatomic, retain) IBOutlet UIWindow *window;

在您的AppDelegate头文件中。( IBOutlet指令告诉在加载nib文件时初始化窗口对象。

请记住,UIWindow只是一个包含其他行为和数据的UIView。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2011-09-25 20:29:00

“然而,有人好心地向我指出,UIWindow继承了UIView的addsubview方法。这一切都很好,但是为什么所有的书籍和在线文档都说addsubview方法为窗口添加了一个视图--但这怎么可能呢?真的很困惑。有人能一步一步地解释一下这段代码在做什么吗?如果UIWindow继承了UIView的addsubview方法,那么它怎么能回到继承树上呢?”

就这样。我认为你没有理解什么是继承。比喻是“是一个”。“a UIWindow”是一个“UIView”。它拥有UIView所拥有的一切,甚至更多。UIView拥有的一件事就是addSubview的能力。因此,UIWindow也具有这种能力。它不需要任何其他UIView来完成它。It is a UIView.它自己也能做到。

票数 0
EN

Stack Overflow用户

发布于 2011-09-25 09:28:12

试一试

代码语言:javascript
复制
[window.view addSubview:self.viewController.view];

这是我想不到的,所以它可能不完全准确。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7543036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档