我已经构建了我的loadingView,现在看起来很不错。但我无法确定显示和删除此loadingView的正确时机。我使用一个NavigationController,我的初始RootViewController有一个UIButton。当按下UIButton时会出现一个新的UIView,但这需要几秒钟,因为我正在从服务器加载一些文件。所以我想在这段时间里显示我的loadingView。我使用prepareForSegue() - 方法,然后我把代码添加到我的加载View这样
[self.navigationController.view addSubview:backgroundLoadingView];
并在viewDidDisapperar我把这行代码
[backgroundLoadingView removeFromSuperview];
效果是,当我按下UIButton没有任何事情发生几秒钟(因为加载文件)并且loadingView没有弹出(但我应该),新的ViewController出现,loadingView弹出一秒钟并消失。 所以它在我猜的正确时刻消失了,但它并没有出现在正确的位置。我该如何处理这种情况?
编辑: 她是我的prepareForSegue-Method
- (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];
}
}
答案 0 :(得分:0)
如果你想在与服务器通信时显示加载视图,你应该添加到窗口而不是查看控制器..比如
UIWindow *window = [UIApplication sharedApplication].keyWindow;
window addSubView:backgroundLoadingView];
[window bringSubviewToFront:backgroundLoadingView];