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

Spa*_*nky 5 iphone objective-c uiviewcontroller loadview

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

在 iPhone SDK 的 UIViewController 类参考中,在它的概述部分中,说明了这一点:

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

在视图属性上的链接之后,它指出:

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

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

self.view = [MyView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
Run Code Online (Sandbox Code Playgroud)

谢谢 // :)

Ed *_*rty 6

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