0

我找不到这个问题的任何线程,所以我在这里问你。

如果有人可以帮助我,我会非常高兴。

我有一个导航控制器,我正在将 TableViewController 推入其中。我的问题是,当我单击“后退”按钮时,我以前的 tableViewcontroller 会出现以前的数据,但是 dataArray 属性(我的表的数据源)是空的。

我的代码:

  @interface patientViewControllerSearch : UIViewController <UITableViewDelegate, UITableViewDataSource, ASIHTTPRequestDelegate>
{
    NSMutableArray *dataArray;
    NSMutableArray *letters;

    UITableView *tableView;
    IBOutlet UISearchBar *searchBar;
}

@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) esTabBarController *esTabBarController;
@property (nonatomic, retain) UISearchBar *searchBar;

在我的 patientViewControllerSearch 中,我在 ViewDidLoad 中执行:

dataArray = [[NSMutableArray alloc] init];    
letters = [[NSMutableArray alloc] init];

通过 HTTP 请求,我填充了我的数组。

那工作正常。

后:

[self.navigationController pushViewController:controller                                         animated:YES];

当我回来时,(viewDidload 没有再次加载,这就是为什么没有新的填充 dataArray 的请求)dataArray,一切都是空的。tableView 显示了我以前的状态,但在刷新后也消失了。

你有什么建议吗?

先感谢您。

4

1 回答 1

1

没有调用“viewDidLoad”的原因是因为它第一次出现在您的应用程序中时已经加载(我假设在启动时)。

您会注意到“viewWillAppear”和“viewDidAppear”总是会在视图出现在您的应用程序之前/之后被调用。

如果您想在向用户显示视图时更新数据,这些将是您使用的适当方法。

于 2012-04-17T14:30:24.173 回答