2008-10-08 8 views
0

Je semble avoir un problème avec iPhone SDK 2.1 jusqu'à capable d'établir une relation entre un ViewController et une fenêtre View . En ce qui concerne un Cocoa Touch Class, j'ai avancé et ajouté une sous-classe UIViewController. Je me suis assuré que la cible fait partie du projet existant . Juste après, j'ai ajouté un utilisateur Interfaces -> Voir XIB. Au sein du UIViewController j'ai un code avant droit, je littéralement copier/coller du code exemple ailleurs:Liaison des propriétaires de fichiers et View Controller [iPhone SDK]

EditViewController.h:

@interface EditorViewController : UIViewController <UITextFieldDelegate> { 
    UITextField *field; 
} 

@property(nonatomic, retain) IBOutlet UITextField *field; 
@end 

EditViewController.m

#import "EditorViewController.h" 

@implementation EditorViewController 

- (BOOL)shouldAutorotateToInterfaceOrientation: 
     (UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 


- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
} 


- (void)dealloc { 
    [super dealloc]; 
} 


@end 

Comme vous pouvez le dire, ça ne fait pas grand-chose. Maintenant, quand je clique sur mon nouveau xib, et fait référence à une identité de classe avec EditorViewController, il n'y a pas d'auto-complète qui, pour moi, implique qu'il n'a pas cette connaissance d'un EditorViewClass. Lorsque je tente de contrôler + clic de la vue à propriétaires de fichiers, je reçois nada. Quelles sont certaines des idiosyncrasies possibles dans ce processus que je suis qui ne me permet pas de sortir ma vue à un contrôleur?

Comment puis-je également m'assurer que mon interface utilisateur XIB est associé au projet en plus de voir le nom du projet coché comme cible?

Répondre

2

(Cela ne semble pas être spécifique à l'iPhone - c'est une classe générale de problème pour toute plate-forme.)

Il est à peine clair ce que cela signifie: « Maintenant, quand je clique sur mon nouveau xib, et référence une identité de classe avec EditorViewController, aucune auto complete ne se produit, ce qui implique pour moi qu'elle n'a pas cette connaissance d'une classe EditorViewClass. " Voulez-vous dire que vous avez sélectionné le propriétaire du fichier et que vous avez essayé de définir sa classe sur EditorViewController, mais que Interface Builder n'a pas rempli automatiquement le nom de la classe pour vous?

Si c'est le cas, le fichier xib est-il associé au projet?

D'autres points qui ne sont pas directement pertinents:

Les meilleures pratiques est maintenant que IBOutlet être associé à la propriété:

@interface EditorViewController : UIViewController 
{ 
    UITextField *field; 
} 
@property(nonatomic, retain) IBOutlet UITextField *field; 
@end 

Vous devez également libérer le champ de texte dans dealloc:

-(void)dealloc { 
    [textField release]; 
    [super dealloc]; 
} 

La mise en forme de votre question rend difficile la lecture du code que vous avez écrit. La terminologie est également "étrange" - outlet n'est pas un verbe:

"Quelles sont certaines des idiosyncrasies possibles dans ce processus que je suis en train de négliger qui ne me permet pas de sortir ma vue d'un contrôleur?" voulez-vous dire: "Y a-t-il quelque chose que j'ai pu ignorer, c'est-à-dire que je ne peux pas connecter la vue de mon contrôleur à la vue dans Interface Builder?"

2

Cela devrait être aussi simple que de sélectionner le propriétaire des fichiers et d'entrer le nom de votre classe dans la boîte de classe (elle devrait être complétée automatiquement et figurer dans le menu déroulant). classe à la vue elle-même

Questions connexes