0

在我的 iPhone 应用程序中,我有 HomeViewController 和 ContentViewController。我使用 NSUserDefaults 将值保存在 ContentViewController 中,并根据保存的值在应用程序重新启动时加载 ContentView 而不是 HomeView。如果 NSUserDefaults 中没有值,它会显示 HomeView。

在 HomeView 我有一些按钮..就像这样..每个按钮都用于一本书,因此在 contentView 中,如果我单击页面不显示所有页面编号(在 ContentView 的滚动视图的底部)将显示ContentView上述标签中的文本。如果用户在contentView中关闭应用程序,则将保存页号和书号...如果用户单击主页按钮,则所有信息将被删除。在我检查 NSUserDefaults 的 Homeview 中,如果它包含值,它应该显示该书的确切页面,以下是代码......

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

        [self presentModalViewController:contentViewController animated:YES];
    }
}

但它正在显示主视图。

4

1 回答 1

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];
  }
}
于 2010-07-07T21:01:27.023 回答