У меня есть приложение UITabBar + UINavigationController, которому часто нужны данные из Интернета. Иногда требуется некоторое время, прежде чем он получит его, поэтому я хотел бы показать индикатор активности.
То, что я пытался, это добавить ActivityView к моему окну в моем методе applicationDidFinishLaunching:
[window addSubview:tabBarController.view];
fullscreenLoadingView.hidden = YES;
[window addSubview:fullscreenLoadingView];
А затем я добавляю делегата приложения в качестве наблюдателя в центр уведомлений по умолчанию:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFullscreenLoading:) name:@"startFullscreenLoading" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stopFullscreenLoading:) name:@"stopFullscreenLoading" object:nil];
и реализовать методы:
- (void)startFullscreenLoading:(NSNotification *)notification {
fullscreenLoadingView.hidden = NO;
}
- (void)stopFullscreenLoading:(NSNotification *)notification {
fullscreenLoadingView.hidden = YES;
}
Когда я затем использую это непосредственно в методе applicationDidFinishLaunching, представление индикатора загрузки показывает upp, как ожидалось:
[[NSNotificationCenter defaultCenter] postNotificationName:@"startFullscreenLoading" object:self];
Но когда я использую его с одного из контроллеров навигации, вызывается метод startFullscreenLoading: но я не вижу представление индикатора загрузки. Почему это?