2016-04-26 2 views
2

mon projet fonctionne sans storyboards, si le chargement im mon point de vue à l'intérieur AppDelegate:Xcode App ne se charge pas de vue parfois

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.window = window; 
    self.window.rootViewController = [[SYLoginController alloc] init]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

Il travaillait sur iPhone 6 sim 9.3 mais maintenant, sur tous les simulateurs il montre seulement un écran noir. Mais sur mon appareil iPhone 6 cela fonctionne. Alors que sur un autre iPhone 6, il montre également un écran noir. Ces deux iPhones sont littéralement les mêmes 16gb iPhone 6 achetés à peu près en même temps.

Dans SYLoginController s viewDiDLoad Je suis en train de consigner le texte d'un des boutons. Seulement sur mon appareil il imprime le texte, sur tous les simulateurs et l'autre iPhone il imprime (nul), donc je suppose que le xib n'est pas correctement chargé.

SYLoginController est un UIViewController, et le xib associé contient un UIView avec son FilesOwner défini sur SYLoginController. Je ne peux vraiment pas voir pourquoi cela ne fonctionne que sur cet appareil particulier. Aussi, j'ai essayé [[SYTabBarController alloc] initWithNibName:@"SYLoginController" bundle:nil], cela ne fonctionne pas non plus ...

+0

Avez-vous essayé de nettoyer (Cmd-K) ou de désinstaller l'application dans un périphérique réel avant d'exécuter le projet? Il ne devrait pas fonctionner dans le vrai appareil aussi. –

+0

J'ai essayé de nettoyer le projet, j'ai essayé de nettoyer derivedData, qui a également désinstallé l'application plusieurs fois. Un iPhone fonctionne, l'autre ne fonctionne pas, pas plus que le simulateur. –

Répondre

0

Avez-vous essayé de l'enrouler autour d'un contrôleur de navigation?

SYLoginController *syVC = [[SYLoginController alloc]initWithNibName:@"SYLoginController" bundle:nil]; 
UINavigationController *nav = [[UINavigationController alloc] syVC]; 
self.window.rootViewController = nav; 

Vérifiez également si la classe personnalisée est définie sur SYLoginController dans le fichier XIB. Et la vue est connectée au propriétaire du fichier.

+0

Je l'ai essayé, maintenant c'est un contrôleur de navigation (vous pouvez voir la barre de navigation) avec un écran noir ... –

+0

Oui, vous pouvez cacher la barre de navigation. Mais étrange ... Vérifiez le fichier XIB. Imprimez la taille du cadre des vues. Donnez au SyLoginController une autre couleur de fond. –

+0

Je peux utiliser self.window.backgroundColor pour définir la couleur d'arrière-plan de la vue, mais il semble que le xib n'est pas chargé. Etrangement sur mon iphone cela fonctionne. –