0

我已经构建了 loadingView,现在看起来不错。但是我想不出合适的时机来显示和删除这个 loadingView。我将 NavigationController 与具有 UIButton 的初始 RootViewController 一起使用。按下 UIButton 时会出现一个新的 UIView,但这需要几秒钟,因为我正在从服务器加载一些文件。所以我想在这段时间展示我的 loadingView。我使用 prepareForSegue()-Method 并在那里放置代码以添加我的加载视图,如下所示

[self.navigationController.view addSubview:backgroundLoadingView];

在 viewDidDisapperar 我把这行代码

[backgroundLoadingView removeFromSuperview];

效果是,当我按下 UIButton 几秒钟内没有任何反应(因为正在加载文件)并且 loadingView 没有弹出(但我应该),新的 ViewController 出现,loadingView 弹出一秒钟然后消失。

所以我猜它会在正确的时刻消失,但它不会在正确的时刻出现。我该如何处理这种情况?

编辑:
这是我的 prepareForSegue 方法

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    
    if([segue.identifier isEqualToString:@"showPointsOnMap"])
    {
        NSLog(@"Here is prepareForsegue()");
        [self.navigationController.view addSubview:backgroundLoadingView];
        [self prepareJSONData:[self getJSONData]];
        [segue.destinationViewController setPointArray:thePointArray];
    }

}
4

1 回答 1

0

如果您想在与服务器通信时显示加载视图,您应该添加到窗口而不是查看控制器.. 像

UIWindow *window = [UIApplication sharedApplication].keyWindow;

window addSubView:backgroundLoadingView];

[window bringSubviewToFront:backgroundLoadingView];
于 2013-01-17T10:46:18.610 回答