I have an aplication with the delegate, the controller and some other things. The thing is that i initzialize everything in the controller with init. This init creates 3 UIVIews (openGL, imagepickerview and a MKMapView) and I want these views to be added in the window, so they are on top of the other. However, somehow it only paints one of the 3, the imagePickerView. Here is the delegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window.rootViewController = self.viewController;
viewController = [[ARInvadersViewController alloc] initWithWindow:self.window];
return YES;
}
And here the controller:
-(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];
}
Am I Doing it OK?
Assuming that all of your views are part of a single screen, you don't need to add anything to your window after setting it up with your viewController. Set your viewController and then just add the next views on that controller's view.
e.g. in your
AppDelegate
:And then in your
ViewController
:Note that
init
methods are usually used to initialize values, andviewDidLoad
is usually used to set up views.