Here you go this is my implementation but you can modify. Post the code in app Delegate and use anywhere in you application.
#pragma mark - #pragma mark Waiting View - (void)showWaitingView { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; CGRect frame = CGRectMake(90, 190, 32, 32); UIActivityIndicatorView* progressInd = [[UIActivityIndicatorView alloc] initWithFrame:frame]; [progressInd startAnimating]; progressInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge; frame = CGRectMake(130, 193, 140, 30); UILabel *waitingLable = [[UILabel alloc] initWithFrame:frame]; waitingLable.text = @"Processing..."; waitingLable.textColor = [UIColor whiteColor]; waitingLable.font = [UIFont systemFontOfSize:20];; waitingLable.backgroundColor = [UIColor clearColor]; frame = [[UIScreen mainScreen] applicationFrame]; UIView *theView = [[UIView alloc] initWithFrame:frame]; theView.backgroundColor = [UIColor blackColor]; theView.alpha = 0.7; theView.tag = 999; [theView addSubview:progressInd]; [theView addSubview:waitingLable]; [progressInd release]; [waitingLable release]; [window addSubview:[theView autorelease]]; [window bringSubviewToFront:theView]; [pool drain]; } - (void)removeWaitingView { UIView *v = [window viewWithTag:999]; if(v) [v removeFromSuperview]; }