Iphone Objective-c在我的控制器中添加子视图

Iphone Objective-c在我的控制器中添加子视图,iphone,objective-c,uiview,subview,Iphone,Objective C,Uiview,Subview,我有一个应用程序与代表,控制器和其他一些事情。问题是我用init初始化控制器中的所有内容。这个初始化创建了3个UIView(openGL、imagepickerview和一个MKMapView),我希望这些视图被添加到窗口中,所以它们位于其他视图之上。然而,不知何故,它只绘制了3个视图中的一个,即imagePickerView。这是代表: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions

我有一个应用程序与代表,控制器和其他一些事情。问题是我用init初始化控制器中的所有内容。这个初始化创建了3个UIView(openGL、imagepickerview和一个MKMapView),我希望这些视图被添加到窗口中,所以它们位于其他视图之上。然而,不知何故,它只绘制了3个视图中的一个,即imagePickerView。这是代表:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.rootViewController = self.viewController;
    viewController = [[ARInvadersViewController alloc] initWithWindow:self.window];
    return YES;
}
这里是控制器:

-(id)initWithWindow:(UIWindow *)_window{
    self.window = _window;
    // ...
    // Some code here
    // ...
    [self.window addSubview:imagePickerController.view];
    [self.window addSubview:self.glView];
    [self.window addSubview:mapView];
    [self.window makeKeyAndVisible];
}

我做得好吗

假设您的所有视图都是单个屏幕的一部分,在使用viewController设置窗口后,您无需向窗口添加任何内容。设置viewController,然后在该控制器的视图上添加下一个视图

e、 g.在您的
AppDelegate
中:

[self.window addSubview:self.viewController.view];  
[self.window makeKeyAndVisible];
然后在
视图控制器中

- (void)viewDidLoad {
    [super viewDidLoad];

    // blah blah blah

    [self.view addSubview:imagePickerController.view];
    [self.view addSubview:self.glView];
    [self.view addSubview:mapView];
}

请注意,
init
方法通常用于初始化值,
viewDidLoad
通常用于设置视图。

为什么不让我这样做:
(self.window.rootViewController=self.viewController;)
在委托中?似乎我无法访问self.viewcontroller它说EXC\u访问错误