使用viewDidAppear和viewDidLoad方法的不规则行为

时间:2012-04-24 11:55:51

标签: iphone objective-c uitableview viewwillappear viewdidappear

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

  1. 当我只实现其中一个方法时,我想要做的更改并不完全存在,所以为了使一切工作正常,我使用相同的代码实现了两个方法。
  2. 即使在使用相同代码实现两种方法之后,更新视图内容时也会有0.5到1秒的延迟。
  3. 以下是我的自定义表格视图控制器的代码:

    -(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;
    }
    

    谢谢!

1 个答案:

答案 0 :(得分:1)

您应该只使用viewWillAppear方法。