iPhone vue ne pas afficher
Question
J'éprouve des difficultés geting une vue très simple à afficher. Ce point de vue a un contrôleur de vue personnalisée qui est gère par un contrôleur de vue de commutation. Le composant a un XIB UIViewController sur elle avec son ensemble de propriétés d'image. Le contrôleur de vue est le suivant:
InstructionsViewController.h
#import <UIKit/UIKit.h>
@interface InstructionsViewController : UIViewController {
}
@end
InstructionsViewController.m
#import "InstructionsViewController.h"
@implementation InstructionsViewController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
// Release anything that's not essential, such as cached data
}
- (void)dealloc {
[super dealloc];
}
@end
Je l'ai également définir la propriété de classe pour le propriétaire de dossier du InstructionsViewController à XIB, et Ctrl + Traîné propriétaire du fichier à l'icône Afficher et sélectionné Affichage dans le menu contextuel.
Le code pour afficher la vue est:
- (void) showInstructions
{
//Lazy load the instruction view.
if (self.instructionsViewController == nil)
{
InstructionsViewController *viewController = [[InstructionsViewController alloc]
initWithNibName:@"InstructionsView"
bundle:nil];
self.instructionsViewController = viewController;
[viewController release];
}
[self.view insertSubview:viewController.view atIndex:0];
}
Mon contrôleur de vue qui anime différents points de vue quand ils sont commutées, n'a pas de problèmes de chargement et d'affichage trois autres vues. Il ne fonctionne tout simplement pas comme celui-ci.
Je suis sûr que je l'ai raté quelque chose de simple, mais pour la vie de moi je ne peux pas le faire fonctionner pour une raison quelconque. Quelqu'un at-il des pointeurs?
Merci,
Steve
La solution 4
Ok, je l'ai enfin résolu le!
Le problème était quelque chose dans XCode ou Interface Builder n'a pas été d'accord avec le fichier PNG I spécifié pour la vue de l'image contrôle IB. J'ai essayé redésignation et re-Specifying, etc. en vain.
J'ai enfin supprimer le graphique et re-copier depuis son emplacement source. Puis je l'ai reprécisé dans la vue de l'image, la construction et couru. Maintenant, cela fonctionne.
Tout est bien dans le monde à nouveau.
Merci à tous ceux qui ont pris le temps de lire et d'offrir de l'aide. Je l'apprécie beaucoup!
Steve
Autres conseils
Je viens d'avoir la même chose. Fini la suppression du UIImageView, en plaçant un nouveau puis Relinked et cela a fonctionné. On dirait une corruption quelque part.
Même pas vraiment comment cela compile. Vous insérez la sous-vue à l'extérieur de votre chèque nul, où viewController est hors de portée.
Vous voulez sans doute faire
[self.view insertSubview:self.instructionsViewController.view atIndex:0];
Avez-vous vérifié que showInstructions
est appelé en définissant un point de jonction? Une autre chose à vérifier est que vous insérez la vue Instructions
au bas de votre ordre z, il sera derrière tous les autres éléments. Essayez d'utiliser:
[self.view addSubview:self.instructionsViewController.view];
Ceci ajoutera au sommet de l'ordre z. Si cela ne fonctionne pas, essayez aussi:
[self.view setNeedsLayout];
et / ou:
[self.instructionsViewController.view setNeedsLayout];