Не используйте синхронные сетевые вызовы для отключения ввода пользователя.Тот, кто предложил это, дал вам очень плохой совет.
Если вы просто хотите отключить ввод для текущего представления и его подпредставлений, вы можете сделать self.view.userInteractionEnabled = NO;
в вашем контроллере представления.
Если вы хотитечтобы отключить ввод для всего окна, вы можете сделать self.view.window.userInteractionEnabled = NO;
. Вам вообще не нужно будет отключать взаимодействие с пользователем, если вы перекрываете полноэкранный вид поверх вашего пользовательского интерфейса.Исходя из вашего макета, я думаю, что это то, что вы пытаетесь сделать.Для этого вы можете сделать что-то вроде этого:
self.overlayView = [[[UIView alloc] initWithFrame:self.view.window.bounds] autorelease];
self.overlayView.backgroundColor = [UIColor blackColor];
self.overlayView.alpha = 0.5f;
[self.view.window addSubview:self.overlayView];
self.activityIndicator = [[[UIActivityIndicator alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
self.activityIndicator.center = self.view.window.center;
[self.view.window addSubview:self.activityIndicator];
[self.activityIndicator startAnimating];
self.activityLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
self.activityLabel.text = @"Loading...";
[self.activityLabel sizeToFit];
self.activityLabel.center = CGPointMake(self.activityIndicator.center.x, self.activityIndicator.center.y - self.activityIndicator.frame.size.height);
[self.view.window addSubview:self.activityLabel];