2010-07-07 10 views
0

Je suis nouveau à la programmation iPhone. Dans mon application, j'ai HomeViewController et ContentViewController. J'enregistre les valeurs dans ContentViewController en utilisant NSUserDefaults et en fonction des valeurs sauvegardées, je vais charger le ContentView au lieu de HomeView lorsque l'application est redémarrée. S'il n'y a pas de valeurs dans NSUserDefautls, il affiche le HomeView.problème dans viewDidLoad..can j'appelle presentModelViewController dans viewDidLoad ..?

dans HomeView j'ai quelques boutons .. c'est comme ça .. chaque bouton est pour un livre donc dans le contenuVoir toutes les pages n (en bas dans une vue déroulante dans ContentView) sera affiché si je clique sur une page non il affiche le texte dans l'étiquette ci-dessus de ContentView.Si l'utilisateur ferme l'application dans contentView, le numéro de page et le numéro de livre seront sauvegardés ... si l'utilisateur clique sur le bouton d'accueil toutes les informations seront supprimées. Dans l'im homeview vérifier la NSUserDefaults, si elle contient des valeurs qu'il devrait afficher cette page exacte de ce livre ce qui suit est le code ...

//HomeViewController.m

  • (void) viewDidLoad {

[super viewDidLoad];

contentViewController = [[ContentViewController alloc] initWithNibName: @ bundle "ContentView": nil];

NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults];

NSLog (@ "...% d,% d,% d", [prefs nombre entierForKey: @ "Stage"], [prefs integerForKey: @ "Stimulus"], [prefs integerForKey: @ "Card"])

if (([prefs integerForKey: @ "Stage"]! == 0 de & & [prefs integerForKey: @ "stimulation"] == 0 & & [prefs integerForKey: @ "Carte"] == 0)) {

[contentViewController setCurrentState: [prefs nombre entierForKey: @ "Stage"]];

[contentViewController setCurrentStimulus: [prefs nombre entierForKey: @ "Stimulus"]];

[contentViewController setCurrentCard: [prefs nombre entierForKey: @ "Carte"]];

[self presentModalViewController: contentViewController animé: OUI];

} 

}

mais son affichage de la AccueilVoir ...

quelqu'un peut me aider ....... s'il vous plaît

Répondre

1

Essayez d'utiliser la méthode viewDidAppear illustré ci-dessous au lieu de viewDidLoad

- (void)viewDidAppear:(BOOL)animated 
{ 
    contentViewController = [[ContentViewController alloc] initWithNibName:@"ContentView" bundle:nil]; 

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

    NSLog(@"...%d,%d,%d",[prefs integerForKey:@"Stage"],[prefs integerForKey:@"Stimulus"],  [prefs integerForKey:@"Card"]); 

if(!([prefs integerForKey:@"Stage"] ==0 && [prefs integerForKey:@"Stimulus"] ==0 &&  [prefs integerForKey:@"Card"] ==0)) 
    { 
    [contentViewController setCurrentState:[prefs integerForKey:@"Stage"]]; 
    [contentViewController setCurrentStimulus:[prefs integerForKey:@"Stimulus"]]; 
    [contentViewController setCurrentCard:[prefs integerForKey:@"Card"]]; 
    [self presentModalViewController:contentViewController animated:YES]; 
    } 
} 
+0

Merci a travaillé ... – rockey

Questions connexes