-1

私は、JSONを介してWebサーバーからにデータをフェッチするアプリケーションに取り組んでいますUITableViewController

データの読み込みに時間がかかるので、読み込み時間中にスピナーを表示したいと思いますviewDidLoad

これは私の最初のアプリケーションなので、その方法についてもう少し説明する必要があります。

viewDidLoad方法

- (void)viewDidLoad
{
    [super viewDidLoad];


    NSString *categoryId = catId;
    NSString *post =[NSString stringWithFormat:@"categoryId=%@",categoryId];
    NSString *cat = [NSString stringWithFormat:@"&cityId=%@",cityId];
    NSString *hostStr = @"http://localhost:8888/iphone-so/bycategory.json.php?";
    hostStr = [hostStr stringByAppendingString:post];
    hostStr = [hostStr stringByAppendingString:cat];

    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:hostStr]];
    NSError *error;
    productsRaw = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
    products = [productsRaw objectForKey:@"products"];
    productKeys = [products allKeys];
}
4

2 に答える 2

0

MBProgressHUDを使用するには、MBProgressHUD.h および MBProgressHUD.m ファイルをプロジェクトに追加するだけです (ARC を有効にしている場合は、ARC に変換する必要がある場合があります)。

    // Add right after your [super viewDidLoad]; ] your start connection method or in viewdidload whatever....
- (void)viewDidLoad
{
    [super viewDidLoad];
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.labelText = @"Loading...";

     // rest of the code goes here
}


// Add at start of requestFinished AND requestFailed
[MBProgressHUD hideHUDForView:self.view animated:YES];
于 2012-12-26T16:25:07.837 に答える
0
- (void)viewDidLoad
{
    [super viewDidLoad];

    // create the activity indicator
    UIActivityIndicator *indicator = [UIActivityIndicator alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGrey];

    // add it
    [self.view addSubview:indicator];

    // animate it
    [indicator startAnimating];

    // your code
    NSString *categoryId = catId;
    NSString *post =[NSString stringWithFormat:@"categoryId=%@",categoryId];
    NSString *cat = [NSString stringWithFormat:@"&cityId=%@",cityId];
    NSString *hostStr = @"http://localhost:8888/iphone-so/bycategory.json.php?";
    hostStr = [hostStr stringByAppendingString:post];
    hostStr = [hostStr stringByAppendingString:cat];

    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:hostStr]];
    NSError *error;
    productsRaw = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
    products = [productsRaw objectForKey:@"products"];
    productKeys = [products allKeys];

    // stop animating the indicator
    [indicator stopAnimating];
}
于 2012-12-26T16:54:23.207 に答える