我有一个奇怪的问题。我有一个选项卡栏应用程序,其中我为每个不同的选项卡使用导航控制器,每个导航控制器都有自己的视图控制器来显示一些内容。
当我触摸一个选项卡时,我希望该选项卡立即与视图一起加载,并且在它加载后(viewDidAppear:
)我希望它在 viewDidAppear: 方法中下载一些数据。
为了测试这个功能,我设置了以下方法。我正在使用 aNSThread
来模拟在加载视图时应该在后台完成的一些冗长操作。然后我为 NSArray *test (nonatomic, retain) 分配一些测试数据并重新加载表。
我正在重新加载表格,因为在该viewDidLoad
方法中我将表格设置为仅包含一个空字符串(这是因为我读到该表格是在调用 viewDidAppear: 之前设置的。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
DLog(@"viewDidAppear running");
[NSThread sleepForTimeInterval:10];
NSArray *array = [[NSArray alloc] initWithObjects:@"Test1", @"Test2", @"Test3", @"Test4", @"Test5", @"Test6", nil];
self.test = array;
[array release];
[table reloadData];
}
所以我的预期行为应该是,当触摸这个特定选项卡时,它应该立即加载,然后在 10 秒后它应该填充来自 viewDidAppear: 方法的表数据。但行为是,当触摸此选项卡时,它会等待 10 秒,然后显示填充了表数据的视图。