我试图用子类UIViewController替换UIView根视图。
在iPhone SDK的UIViewController类引用中,在其概述部分中,说明如下:
使用UIViewController的每个实例来管理全屏视图。对于一个简单的视图控制器,这需要管理负责显示应用程序内容的视图层次结构。典型的视图层次结构由一个根视图(该引用在该类的视图属性中可用)和一个或多个表示实际内容的子视图组成。
在视图属性的链接之后,它声明:
如果您的视图控制器没有关联的视图控制器,则应该重写loadView方法,并使用它创建根视图及其所有子视图。
如果将这段代码放在loadView中,它会创建根视图吗?假设我使用自己的名为MyView的UIView子类:
self.view = [MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];谢谢// )
发布于 2009-10-14 02:50:15
你是对的。当视图需要显示时调用loadView函数,而viewController的view属性是在使用presentModalViewController:animated:之类的函数时显示的视图。如果要从NIB加载视图而不是使用loadView,那么只需将视图的类更改为该视图的属性选项卡中的自定义子类。
发布于 2009-10-14 05:06:54
您应该注意,任何将view属性设置为保留的内容都会被保留。所以你要么用
self.view = [[[MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] autorelease];或
MyView *v = [[MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
self.view = v;
[v release];来平衡这点。
https://stackoverflow.com/questions/1563885
复制相似问题