2009-10-16 5 views
0

J'essaie de charger un UIView avec plusieurs données. Le problème est que les données ne sont pas affichées en première charge mais les chargent dans les clics suivants. Pouvez-vous m'aider à tracer le problème.iPhoneSDK: la vue ne charge pas les données pour la première fois mais les charge par la suite

FirstViewController.h 

    #import <UIKit/UIKit.h> 

    @class SecondViewController; 

    @interface FirstViewController : UIViewController { 

     IBOutlet SecondViewController *mySecondViewController; 
     IBOutlet UIImageView *myimage1; 
     IBOutlet UIImageView *myimage2; 
     IBOutlet UILabel *mylabel1; 
     IBOutlet UILabel *mylabel2; 

    } 

    @property (nonatomic, retain) IBOutlet SecondViewController *mySecondViewController; 
    @property (nonatomic, retain) IBOutlet UIImageView *myimage1; 
    @property (nonatomic, retain) IBOutlet UIImageView *myimage2; 
    @property (nonatomic, retain) IBOutlet UILabel *mylabel1; 
    @property (nonatomic, retain) IBOutlet UILabel *mylabel2; 

    - (IBAction)bringNextView:(id)sender; 
    - (IBAction)bringNextView2: (id)sender; 

    @end 

    FirstViewController.m 

     #import "FirstViewController.h" 
     #import "SecondViewController.h" 
     @implementation FirstViewController 
     @synthesize mySecondViewController,myimage1, myimage2, mylabel1, mylabel2; 
     - (IBAction)bringNextView:(id)sender { 
     mySecondViewController.name.text = @"Paul"; 
     mySecondViewController.myimageview.image = [UIImage imageNamed:@"Paul.png"]; 
     mySecondViewController.statmsg.text = @"Doing iPhone Development"; 
     [[self navigationController] pushViewController:mySecondViewController animated:YES]; 
     } 


    SecondViewController.m 

    #import "SecondViewController.h" 
    @implementation SecondViewController 
    @synthesize myimageview, name, statmsg 
    - (void)viewDidLoad { 
     [self setTitle:@"Details"]; 
     [super viewDidLoad]; 
    } 

Les propriétés n'apparaissent pas pour la première fois. Mais sont des affichages après le retour de la vue, puis chargement de la vue à nouveau.

Je charge SecondViewController depuis FirstViewController.

+0

Vous devrez peut-être faire un peu plus de code que cela. Le code que vous avez posté semble correct; que diriez-vous du code utilisé pour gérer mySecondViewController lui-même? Comment la classe est-elle allouée/initialisée? Et comment les valeurs membres de mySecondViewController sont-elles communiquées à sa vue? – fbrereto

+0

Ajouté plus de code – maxpaul

Répondre

-1

Salut, j'ai résolu ce problème. En fait, je poussais mon contrôleur de vue après la mise en place de la propriété et cela a causé ce problème.

Au lieu de:

mySecondViewController.name.text = @"Paul"; 
mySecondViewController.myimageview.image = [UIImage imageNamed:@"Paul.png"]; 
mySecondViewController.statmsg.text = @"Doing iPhone Development"; 
[[self navigationController] pushViewController:mySecondViewController animated:YES]; 

Il devrait être:

[[self navigationController] pushViewController:mySecondViewController animated:YES]; 
mySecondViewController.name.text = @"Paul"; 
mySecondViewController.myimageview.image = [UIImage imageNamed:@"Paul.png"]; 
mySecondViewController.statmsg.text = @"Doing iPhone Development"; 
+0

La première façon est la façon dont j'ai toujours fait cela, et cela devrait fonctionner. Vous avez quelque chose d'autre qui ne va pas. –

+0

des pointeurs sur ce qui pourrait être le problème? Autant que je sache, les fichiers NIB n'ont peut-être pas chargé la propriété dans le premier exemple. – maxpaul

Questions connexes