首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用我自己的视图替换UIViewController根视图

用我自己的视图替换UIViewController根视图
EN

Stack Overflow用户
提问于 2009-10-14 01:55:59
回答 2查看 7.7K关注 0票数 7

我试图用子类UIViewController替换UIView根视图。

在iPhone SDK的UIViewController类引用中,在其概述部分中,说明如下:

使用UIViewController的每个实例来管理全屏视图。对于一个简单的视图控制器,这需要管理负责显示应用程序内容的视图层次结构。典型的视图层次结构由一个根视图(该引用在该类的视图属性中可用)和一个或多个表示实际内容的子视图组成。

在视图属性的链接之后,它声明:

如果您的视图控制器没有关联的视图控制器,则应该重写loadView方法,并使用它创建根视图及其所有子视图。

如果将这段代码放在loadView中,它会创建根视图吗?假设我使用自己的名为MyView的UIView子类:

代码语言:javascript
复制
self.view = [MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

谢谢// )

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-14 02:50:15

你是对的。当视图需要显示时调用loadView函数,而viewController的view属性是在使用presentModalViewController:animated:之类的函数时显示的视图。如果要从NIB加载视图而不是使用loadView,那么只需将视图的类更改为该视图的属性选项卡中的自定义子类。

票数 6
EN

Stack Overflow用户

发布于 2009-10-14 05:06:54

您应该注意,任何将view属性设置为保留的内容都会被保留。所以你要么用

代码语言:javascript
复制
self.view = [[[MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] autorelease];

代码语言:javascript
复制
MyView *v = [[MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
self.view = v;
[v release];

来平衡这点。

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

https://stackoverflow.com/questions/1563885

复制
相关文章

相似问题

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