Question

Ma question est peut-être un peu stupide, mais pourquoi ne peut tout objet instancié dans la poignée IB, par exemple, cliquez sur le bouton? Je veux dire que je suis en mesure d'ajouter mon propre objet à un xib, et les sorties de lien vers cotrols et contrôler les actions pour objet de méthode, mais une fois que j'appuie sur le bouton, tout se bloque tout (sélecteur uknown).

Avez-vous les gars ont un indice autour de cela?

EDIT : Le code, comme l'a demandé:

@interface TextController {
    IBOutlet UILabel * textLabel;
    IBOutlet UITextField * textField;
}

-(IBAction)buttonClicked:(id)sender;

@end

@implementation TextController

-(IBAction)buttonClicked:(id)sender {
    textLabel.text = @"Ololo";
}

@end

Connexions dans IB sont ok, me croire. Il est vraiment difficile de les faire mal avec tout ce genre de choses drag'n'drop:)

EDIT 2: TextController est pas propriétaire du fichier (dans ce cas, il fonctionne très bien). Cependant, je veux juste comprendre pourquoi je ne peux pas câbler une action à un objet (peut être même pas une sous-classe de UIViewController).

Était-ce utile?

La solution

Vous pouvez câbler les prises et les actions à tout objet dans le fichier nib. Faites glisser une NSObject forme la palette bibliothèque sur votre nib fichier, dans Interface Builder. Ensuite, allez à l'onglet Identité de la palette d'informations et de définir la classe de votre objet.

De cette façon, vous pouvez instancier un objet d'une classe de votre plume. Si la cible que vous souhaitez accrocher à statiquement créé à partir du fichier nib. Assurez-vous que le propriétaire du fichier ont au moins une référence à votre objet, ou bien elle sera libérée dès qu'il a été créé. Les cibles ne sont pas conservés par l'expéditeur.

Si l'objet que vous voulez brancher ne doit pas être statique créée à partir de votre plume, puis mettre en œuvre awakeFromNib dans une classe qui est instancié à partir du fichier nib et brancher les cibles dans le code.

La dernière option est que si vous n'avez pas de sous-classe de votre propre dans le fichier nib du tout. Ensuite, mettre en œuvre initWithNibName:bundle: dans votre sous-classe UIViewController et brancher vos cibles dans le code après avoir appelé la super mise en œuvre.

Autres conseils

code postal, cela signifie généralement que vous n'avez pas vos connexions câblées correctement. Est-propriétaire du fichier de TextController dans IB?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top