0

ビューが表示されたときにいくつかのビューを更新しようとしているので、自然に viewDidAppear: および viewWillAppear: メソッドを使用していることに気付きました。ただし、これらの方法を使用すると、次の 2 つの問題が発生しました。

  1. メソッドの 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 メソッドを 2 回呼び出す必要があります。

カスタムメイドの通常のView Controllerのコードは次のとおりです。

-(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 に答える