2011-01-17 1 views

Répondre

5

Ceci est assez simple à faire, vous devez faire 2 choses:

1: Expose la sortie dans une propriété publique, à l'intérieur de votre appdelegate:

public class AppDelegate : NSObject { 
    public UITextField PublicField { 
     get { 
      return outletName; 
     } 
    } 
} 

2: Accédez à votre AppDelegate d'un autre classe:

public class OtherClass : NSObject { 
    public void SomeMethod() { 
     var ad = (AppDelegate) UIApplication.SharedApplication.Delegate; 

     ad.PublicField.Text = "foo"; 
    } 
} 
+0

Put # 1 à l'intérieur du délégué App classe partielle et je suis obtenir cette erreur: erreur CS0542: 'Prager.AppDelegate.AppDelegate ': membre les noms ne peuvent pas être identiques à leur type englobant (CS0542) – SpokaneDude

+0

Vous ne mettez que la propriété dans votre appdelegate, pas une classe interne, je fournissais juste cela comme point de contexte, il en va de même pour OtherClass. –

+0

OK .. ce que j'ai INSIDE délégué App: \t \t publique UITextField PublicField { \t \t get { \t \t txtRemainingIDs de retour; \t \t}} \t \t et c'est ce que j'ai dans la méthode où je besoin d'accéder: \t \t \t \t // besoin de mettre à jour le champ de texte sur Acheter ID <--------- ---------- TODO \t \t var ad = (AppDelegate) UIApplication.SharedApplication.Delegate; \t \t \t \t ad.txtRemainingIDs.Text = sumIDs.ToString(); et l'erreur de construction est: ad.txtremainingIDs est inaccessible en raison de son niveau de protection. Je suis perdu! Je pensais que c'était juste ce que je suis entré ... DOIS-je faire quelque chose dans IB? – SpokaneDude

Questions connexes