2010-02-17 9 views
4

J'ai fait une application iPhone en Objective-C. Quand je veux lier une étiquette à certaines données que je déclarerais comme ceci:Comment faire des IBOutlets dans MonoTouch?

@interface CityDetailViewController : UIViewController { 
UILabel *cityName; 
} 

@property(nonatomic, retain) IBOutlet UILabel *cityName; 

Et puis lorsque l'objet CityDetailViewController est créé dans le code que je mettrais le nom de la ville comme celui-ci [self.cityView.cityName setText:city.name];

I ne peut pas, pour la vie de moi, comprendre comment faire cela dans MonoTouch. Je essayé de créer manuellement les points de vente à travers Interface Builder et j'essayé d'ajouter ce code que j'ai trouvé dans le fichier .designer.cs d'un autre projet:

[MonoTouch.Foundation.Connect("headlineLabel")] 
    private MonoTouch.UIKit.UILabel headlineLabel { 
     get { 
      return ((MonoTouch.UIKit.UILabel)(this.GetNativeField("headlineLabel"))); 
     } 
     set { 
      this.SetNativeField("headlineLabel", value); 
     } 
    } 

Et je l'ai essayé une combinaison de ces deux choses. Ils ne fonctionnent pas. Le plus proche que je peux obtenir est d'appliquer effectivement la sortie en utilisant Interface Builder, mais quand ma vue est déclarée je reçois cette erreur:

this class is not key value coding-compliant for the key headlineLabel.

Je suis tout à fait à une perte. Quelqu'un peut-il m'expliquer s'il vous plaît?

Répondre

17

assez sûr que je l'ai pensé à elle donc je posterai le processus ici pour d'autres à regarder:

Étape 1) Commencez par votre vide Voir comme ceci: step 1 http://www.jamespwright.com/images/public/screengrabs/7f2b8d35406e98ee5a00a81c6346e373.PNG

Étape 2) Ajouter un contrôle UILabel à votre vue: step 2 http://www.jamespwright.com/images/public/screengrabs/d757c579238ffc27acabb69c55460071.PNG

Étape 3) Sélectionnez "Propriétaire du fichier": step 3 http://www.jamespwright.com/images/public/screengrabs/42900214063dbbc44cd4dbc2813d64eb.PNG

Étape 4) Sélectionnez l'inspecteur Identity (CMD + 4) et ajouter une nouvelle sortie de classe: step 4 http://www.jamespwright.com/images/public/screengrabs/109318382a72ac9edad2bcd24e6a4b9f.PNG

Étape 5) Sélectionnez les connexions Inspecteur (CMD + 2) et vous devriez voir votre nouvelle sortie il classe: step 5 http://www.jamespwright.com/images/public/screengrabs/2a2f9f4f0cc6680e7dd8c47cabba7e24.PNG

Étape 6) Faites glisser la connexion à votre étiquette sur votre vue.

Étape 7) l'intérieur de votre code en tapant le remplir myLabel.Text = "My Label!"

Espérons que cela aidera quelqu'un d'autre dans l'avenir.

+0

1 pour l'effort –

+0

Un autre pour l'effort. –

+0

Et un autre –