0

我想知道视图是否有可能在加载某些数据之前阻止自己作为模态视图打开。

例如:

addTimeViewController = [[[AddTimeViewController alloc] initWithNibName:@"AddTimeViewController" bundle:nil] autorelease];
addTimeViewNavigationController = [[[UINavigationController alloc] initWithRootViewController:addTimeViewController] autorelease];

Item *item = (Item *)[_dataModel.items objectAtIndex:_currentEditCell];    
[self.navigationController presentModalViewController:addTimeViewNavigationController animated:YES];

[addTimeViewController updateTime:item];

这会将 AddTimeViewController 作为模式打开,但 AddTimeViewController 必须在显示之前加载某些数据。

有没有办法阻止它在加载数据之前在模式视图中打开自己?我想在 AddTimeViewController 本身内部执行此操作,我不想发送通知并这样做。

4

2 回答 2

1

您不应该阻止 viewController 加载自身,而是在 ViewController 打开时,您可以添加一些中间视图,告诉用户您当前正在从远程源加载数据

于 2012-06-28T10:11:20.033 回答
1

ViewController仅当所有数据任务完成时才加载新的。

如果从服务器获取大量数据,那么您可以在后台线程中获取 -

Item *item = (Item *)[_dataModel.items objectAtIndex:_currentEditCell];
[self performSelectorOnMainThread:@selector(loadNewView)
                       withObject:item
                    waitUntilDone:YES];

-(void)loadNewView {
    addTimeViewController = [[[AddTimeViewController alloc] initWithNibName:@"AddTimeViewController" bundle:nil] autorelease];
    addTimeViewNavigationController = [[[UINavigationController alloc] initWithRootViewController:addTimeViewController] autorelease];

    [self.navigationController presentModalViewController:addTimeViewNavigationController animated:YES];
}
于 2012-06-28T10:11:52.370 回答