1、SignInViewController.h
#import@interface SignInViewController : UIViewController { UIAlertView *remoteAlertView; } @end
2、SignInViewController.m
#import SignInViewController.h
@interface SignIniewController ()
@end
@implementation SignInViewController
-(void)dealloc{
if (remoteAlertView) {
[remoteAlertView release];
}
[super dealloc];
}
// 方法內:
// 遠程webservice方法
RemoteLogic *remoteLogic = [[RemoteLogic alloc] init];
// 啟動動畫
[self remoteAnimation:@正在獲取服務器時間, 請稍候...];
// 異步加載數據
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 獲取webservice數據
delegate.serverTime = remoteLogic.getServerTime;
dispatch_async(dispatch_get_main_queue(), ^{
// 關閉動畫
[remoteAlertView dismissWithClickedButtonIndex:0 animated:YES];
// 獲取webservice數據後操作 do something
});
});
#pragma mark - Animation
-(void)remoteAnimation:(NSString *)message{
if (remoteAlertView) {
[remoteAlertView release];
}
remoteAlertView = [[UIAlertView alloc] initWithTitle:@提示 message:message delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil ];
UIActivityIndicatorView *aiView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125.0, 80.0, 30.0, 30.0)];
aiView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
//check if os version is 7 or above. ios7.0及以上UIAlertView棄用了addSubview方法
if ([[[UIDevice currentDevice] systemVersion] compare:@7.0] != NSOrderedAscending) {
[remoteAlertView setValue:aiView forKey:@accessoryView];
}else{
[remoteAlertView addSubview:aiView];
}
[remoteAlertView show];
[aiView startAnimating];
[aiView release];
}

