Ios 将特定视图控制器设置为应用程序委托中的根

Ios 将特定视图控制器设置为应用程序委托中的根,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,我想知道如何在我的Xcode项目中设置应用程序代理,以便通用视图控制器文件(ViewController.h和.m)将是控制我在应用程序代理中设置的根视图控制器的文件 我的AppDelegate.h - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { CGRect rect = [[UIScreen mainScre

我想知道如何在我的Xcode项目中设置应用程序代理,以便通用视图控制器文件(ViewController.h和.m)将是控制我在应用程序代理中设置的根视图控制器的文件

我的AppDelegate.h

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    CGRect  rect = [[UIScreen mainScreen] bounds];

    self.window.frame = rect;

    planet3dController *theController;
    self.controller = theController;

    self.window.rootViewController = self.controller;

    GLView *glView = [[GLView alloc] initWithFrame:rect];
    [self.window addSubview:glView];

    theController.view=glView;

    glView.controller = self.controller;
    glView.animationInterval = 1.0 / kRenderingFrequency;
    [glView startAnimation];

    glView.layer.contentsScale = [UIScreen mainScreen].scale;

    return YES;
}

self.window.rootViewController=self.controller

看起来你已经在这么做了

我不知道你的应用程序试图做什么,但是
[self.window addSubview:glView]有点可疑。您可能想添加
glView
作为rootViewController的子视图,而不是窗口,对吗


如果您希望初始的“通用”视图控制器文件是rootViewController,那么不要像您当前在示例中所做的那样使用专用的
Planet3D控制器来覆盖它,而是将其设置为该控制器的实例。

提示:
self.window.rootViewController=self.controller始终存在相同的问题:(应用程序窗口预计在应用程序启动结束时会有一个根视图控制器。代码中有很多错误,从它们的性质来看,很明显您需要进一步研究这些错误:指针、实例、视图与视图控制器、视图层次结构、应用程序代理细节、makeKeyAndVisibble消息。我的视图控制器是一个使用OpenGL创建的球体(具有旋转和收缩缩放功能的行星)