2009-12-04 3 views
0

J'ai ce qui me semble simple, mais je n'arrive pas à le faire fonctionner. J'ai une variable entrant dans un ViewController (présenté par une vue modale) et dans viewController j'accède à appDelelgate pour obtenir une variable dans le NSArray passé. Je peux vérifier que la variable est disponible avec mon NSLog juste avant que je fasse un gâchis de l'assigner, ainsi je sais qu'il est là. dans le fichier .h est la suivante;Affecter IBOutlet à partir de la variable appDelegate dans un tableau dans une vue Contrôleur

@class ViolinMakerAppDelegate; 


@interface DetailsViewController : UIViewController 
{ 

    ViolinMakerAppDelegate *dappDelegate; 
DetailsViewController *detailsView; 


IBOutlet UIViewController *modalViewController; 
IBOutlet UITextView *violinMakerDescription; 

} 

@property (retain, nonatomic) ViolinMakerAppDelegate *dappDelegate; 

@property (nonatomic, retain) DetailsViewController *detailsView; 
@property(nonatomic, assign) UIViewController *modalViewController; 

@property (nonatomic, retain) IBOutlet UITextView *violinMakerDescription; 

Dans le fichier .m est la suivante. Je suis sûr que c'est assez simple car je sais que la variable 'description' a ce que je veux. Je continue à n'obtenir que le texte statique dans l'IB. Je suis sûr que j'ai IB connecté correctement, comme je l'ai fonctionné de la même manière à partir du RootViewController en poussant une autre vue, et toutes les connexions sont les mêmes et très simples. Une sortie IB, une UITextView. Cela me semble fou, mais y a-t-il une raison quelconque parce que cette vue est dans une vue modale, qu'elle ne peut pas charger des variables dans des champs de texte, seulement renvoyer des variables dans le programme à partir d'un contrôleur modal? Est-ce que n'importe qui là dehors m'aide à obtenir ceci à travers mon crâne dense ce qui me manque pour ce code final pour l'assigner à l'IBOutlet ?? Merci à l'avance, Kirk

@Scott J'ai tout essayé, et la pensée qui était ce qui était nécessaire ... pas vraiment sûr. Voici où je présente modiquement DetailsViewController, d'une autre vue, qui est poussée par le contrôleur racine.

case 0: 
     { 
      DetailsViewController *detailsViewController = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil]; 
      UINavigationController *aDetailsViewController = [[UINavigationController alloc] initWithRootViewController:detailsViewController]; 
      self.detailsView = detailsViewController;   

      // °°°[self.view addSubview:detailsViewController.view]; 
      // self.violinMakerView = violinMakerViewController; 
      // [[self navigationController] pushViewController:detailsViewController animated:YES]; 



      dappDelegate = (ViolinMakerAppDelegate *) [[UIApplication sharedApplication] delegate]; 
      // This does show the variable is loaded here too. 
      NSLog(@"violinMakerDescription from Details Segment: %@", [dappDelegate.violinMakers description]); 
      // attempting to load it here as well rem out doesn't change things 
      [violinMakerDescription setText:[dappDelegate.violinMakers description]]; 

      // NSLog(@"violinMakerDescription loaded in segment Segment: %@", violinMakerDescription); 


      [self presentModalViewController:aDetailsViewController animated:YES]; 


      [violinMakerView release]; 
      [detailsViewController release]; 
      [aDetailsViewController release]; 

      break; 

Je vraiment don » sais ce que je dois dans le DetailsViewController dans le texte ci-dessus pour l'obtenir pour charger la variable .... je l'espère, il est logique de vous. Merci pour tout ce que vous pouvez aider ou faire la lumière sur!

+0

Je pense que votre sur quelque chose là-bas, mais j'affecte la variable dans le contrôleur de vue détaillée, donc ne devrait pas être celui qui est lancé pour la vue? Comment savoir où la vue est lancée? il me semble dans le lancement de la vue modale de la page, il charge la même vue à laquelle j'attribue la variable. J'ai essayé d'assigner la variable la même pourquoi là, mais j'ai l'impression qu'Interface Builder est l'endroit où se situe le problème, ou comme vous dites que je ne vois pas la vue générée ... – Digiguy

Répondre

1

Dans votre implémentation, DetailsViewController est-il le contrôleur modal de la vue? Si oui, je ne comprends pas la nécessité de le code suivant:

DetailsViewController *detailsViewController = [[DetailsViewController alloc]initWithNibName:@"DetailsViewController" bundle:nil]; 
self.detailsView = detailsViewController; 

Il semble que vous chargez une autre vue et attribuer la description et ne jamais montrer dans la même vue. Je ne sais pas comment vous avez votre code pour la vue du modèle de chargement si l'article vous semble peut essayer ce qui suit dans viewWillAppear: (BOOL):

[violinMakerDescription setText:[dappDelegate.violinMakers description]]; 

qui fixerait la description de la vue actuelle et devrait être tout ce que vous avez besoin à moins Il me manque quelque chose.