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

Était-ce utile?

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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top