2010-07-07 3 views
0

Я новичок в программировании на iPhone. В моем приложении у меня есть HomeViewController и ContentViewController. Я сохраняю значения в ContentViewController с помощью NSUserDefaults и на основе сохраненных значений я загружу ContentView вместо HomeView при перезапуске приложения. если нет значений в NSUserDefautls, он отображает HomeView.проблема в viewDidLoad..может ли я назвать presentModelViewController в viewDidLoad ..?

в HomeView У меня есть несколько кнопок .. вот так .. каждая кнопка предназначена для книги, поэтому в contentView будет отображаться все страницы nos (внизу в прокрутке в ContentView), если я нажимаю на страницу нет, он отображает текст на вышеуказанной метке ContentView. Если пользователь закрывает приложение в contentView, страница no и book no будут сохранены ... если пользователь нажимает кнопку «домой», вся информация будет удалена. В проверке на NSUserDefaults им Homeview, если он содержит значение он должен показать, что точные страницы этой книги Ниже приведен код ...

//HomeViewController.m

  • (аннулируется) viewDidLoad {

[super viewDidLoad];

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

NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults];

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

если (([префы integerForKey: @ "Stage"]! == 0 & & [префы integerForKey: @ "Стимул"] == 0 & & [префы integerForKey: @ "Карта"] == 0)) {

[contentViewController setCurrentState: [prefs integerForKey: @ "Stage"]];

[contentViewController setCurrentStimulus: [prefs integerForKey: @ "Stimulus"]];

[contentViewController setCurrentCard: [prefs integerForKey: @ "Card"]];

[self presentModalViewController: contentViewController animated: YES];

} 

}

но его отображение homeview ...

может кто-нибудь помочь мне пожалуйста .......

ответ

1

Попробуйте использовать метод viewDidAppear как показано ниже вместо 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

Спасибо, что сработало ... – rockey