проблема в viewDidLoad..можно ли мне вызвать presentModelViewController в viewDidLoad ..? - PullRequest
0 голосов
/ 08 июля 2010

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

в HomeView, у меня есть несколько кнопок ... вот так .. каждая кнопка предназначена для книги, поэтому в contentView все номера страниц (внизу впредставление прокрутки в ContentView) будет отображаться, если я щелкну страницу, на которой нет текста, отображаемого в вышеуказанной метке ContentView. Если пользователь закроет приложение в contentView, страница № и книга № будут сохранены ... еслипользователь нажимает на кнопку домой, вся информация будет удалена.В Homeview я проверяю NSUserDefaults, если он содержит значения, он должен отображать эту точную страницу этой книги, следующий код: *

// HomeViewController.m

  • (void) 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"]);

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"]];

[selfpresentModalViewController: contentViewController animated: YES];

} 

}

, но с отображением домашнего просмотра ...

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

1 Ответ

1 голос
/ 08 июля 2010

Попробуйте использовать метод 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];
  }
}
...