1

首先让我提一下我是IOS开发的新手。

一般当我们在 XCODE 中新建一个项目时,并没有像这样声明的对象

    @property (nonatomic, retain) IBOutlet ViewController *viewController;

在自动创建的AppDelegate.h. 大多数创建并作为子视图添加到主视图的自定义视图仍然可以正常工作。

但是在子应用程序中需要声明我们的视图控制器的对象,如上所述。并且必须添加到 中window的子视图中AppDelegate.m,如下所示:

    [window addSubview:viewcontroller.view];
    [window makeKeyAndVisible];

否则,某些控制器的视图(例如MPMediaPlayerController.view(在我的情况下)等)无法正确添加为视图的子viewController视图。

为什么会这样?

在什么情况下我们需要在委托类中声明视图控制器的对象?

4

1 回答 1

0

根据您使用的 Xcode 版本以及定义界面的方式,有不同的答案,但假设最近有故事板,答案是它发生在初始控制器的加载期间。

对于要使用的视图控制器,需要保留它,并且窗口rootViewController是初始默认值。如果您查看“在启动时配置初始视图控制器”的文档,您会看到列出的一些步骤:

“[...] iOS 执行以下操作:

...

它将窗口的 rootViewController 属性设置为新的视图控制器。”

于 2012-08-06T14:26:23.167 回答