Ios 为什么赢了';我的UIView负载是多少?

Ios 为什么赢了';我的UIView负载是多少?,ios,objective-c,uiview,Ios,Objective C,Uiview,我将现有项目的应用程序代理修改为默认为标准应用程序代理,并使其在启动后将自定义视图控制器的视图添加到场景中: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. SplashScreenCo

我将现有项目的应用程序代理修改为默认为标准应用程序代理,并使其在启动后将自定义视图控制器的视图添加到场景中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    SplashScreenController *controller = [[SplashScreenController alloc] init];
    [self.window addSubview:controller.view];
    return YES;
}
我不明白的是,为什么我的观点没有显示出来?加载后屏幕始终为黑色,因为我可以肯定地看到视图确实加载了:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    NSLog(@"View did load.");
}

我很难理解您试图做什么,但看起来您的意思是要设置窗口的根视图控制器。试试这个:

SplashScreenController *controller = [[SplashScreenController alloc] initWithNibName:@"theNibName" bundle:nil];            
[self.window setRootViewController:controller];

我想出来了。我没有在视图控制器中分配窗口,也没有使窗口键可见。代表中的代码应如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    SplashScreenController *controller = [[SplashScreenController alloc] init];
    [self.window addSubview:controller.view];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

我的意思是,我将默认Cocos2D应用程序委托的逻辑更改为普通的iOS应用程序委托,并尝试将一个简单视图加载到屏幕上。不幸的是,在我的应用程序代理的窗口上设置根视图控制器似乎仍然显示黑色窗口:(@Alexandru当然有。你只是在分配/初始化视图控制器的一个空白实例。如果你想利用你在xib中所做的,你需要使用initWithNib:请参阅我文章中的新代码。即使Nib的名称是“SplashScreenController”或“SplashScreenController.xib”,它仍然显示为黑色。我发现了,很快就会发布答案。有一些问题,但不是你提到的问题。我感谢你的帮助,+1感谢你的贡献!谢谢!在今天的iOS中,你不会将ViewController视图添加到窗口中!你真的想使用[self.window setRootViewController:controller]方法-如果你再次使用UIKit,一切都会带来痛苦!@LordT哦,是的,比如什么?推送视图不一定再有效,或者在下一个版本的操作系统中可能不再有效,rootViewController getter不起作用,模式显示视图可能会失败,etc@LordT谢谢。我注意到一些奇怪的行为,但我没有使用setRootViewController,如旋转硬件设备使视图看起来奇怪等。