0

我试图在它们出现时更新我的​​一些视图,所以我自然地发现自己使用 viewDidAppear: 和 viewWillAppear: 方法。但是,我在使用这些方法时遇到了两个问题:

  1. 当我只实现其中一种方法时,我想要进行的更改并不完全存在,所以为了让一切正常工作,我用相同的代码实现了这两种方法。
  2. 即使在使用相同的代码实现这两种方法之后,更新视图内容时也会有 0.5 到 1 秒的延迟。

这是我定制的表格视图控制器的代码:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.tableView reloadData];
}

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self.tableView reloadData];
}

出于某种原因,我必须调用 reloadData 方法两次才能完全更新我的表格视图。

这是我定制的普通视图控制器的代码:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    navItem.title = @"Name1";
    nameLabel.text = @"Name1";
    nameField.hidden = YES;
}

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    navItem.title = @"Name1";
    nameLabel.text = @"Name1";
    nameField.hidden = YES;
}

谢谢!

4

1 回答 1

1

您应该只使用该viewWillAppear方法。

于 2012-04-24T12:53:12.040 回答