2014-02-15 5 views
1

Я модифицировал делегат приложения существующего проекта по умолчанию, к стандартному делегату приложения и сделал это добавить вид мой пользовательского контроллера представления на сцену, как только он начал:Почему мой UIView не загружается?

- (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; 
} 

То, что я не понимаю, почему ISN» t мой просмотр показывается? Экран всегда Perma-черный после загрузки, потому что я могу видеть, что мнение было на самом деле нагрузка:

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

ответ

0

Я понял. Я не выделил окно в контроллере представления, и я не сделал ключ окна и не был видимым. Код должен быть следующим в делегат:

- (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; 
} 
+0

в сегодняшнем iOS, вы не добавляете вид viewcontrollers в окно Вы действительно хотите использовать метод [self.window setRootViewController: controller] - все приведет к миру боли, если вы снова используете UIKit! – LordT

+0

@LordT О да, как и в? – Alexandru

+1

Нажатие на просмотр не обязательно больше работает или может не работать больше в следующей версии ОС, а getter rootViewController не работает, модно показывая, что представление может потерпеть неудачу, и т. Д. – LordT

2

Я с трудом понимая, что вы пытаетесь сделать, но это выглядит например, вы хотите установить контроллер корневого окна вашего окна. Попробуйте следующее:

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

Я имею в виду, я изменил логику умолчанию Cocos2D приложения делегатов от до нормального приложения делегат IOS, и я пытаюсь загрузить простое представление на экран. К сожалению, установка контроллера корневого представления в окне моего приложения-делегата по-прежнему кажется черным окном :( – Alexandru

+1

@Alexandru Конечно, это так. Вы просто назначаете пустой пул экземпляра контроллера представления. вы сделали в своем xib, вам нужно использовать initWithNib: см. новый код в моем сообщении. –

+0

Даже если имя Nib является «SplashScreenController» или «SplashScreenController.xib», оно все еще отображается черным. – Alexandru

Смежные вопросы