URLからフィードを取得し、テーブルビューに投稿を表示するIOS 5アプリを開発しています。フィード内の投稿を含むテーブル セルを読み込むビュー コントローラーがあります。これはすべて完璧に機能します。
SVProgressHUD
ただし、フィードが別のスレッドにロードされている間に表示するために を使用したかったのです。
したがって、私の-(void)viewDidLoad
方法では次のようになります。
- (void)viewDidLoad
{
[super viewDidLoad];
[SVProgressHUD showInView:self.view status:@"loading.." networkIndicator:YES];
dispatch_async(kBgQueue, ^{NSData* data = [NSData dataWithContentsOfURL: latestFeedURL];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];});
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(foregroundRefresh:) name:UIApplicationWillEnterForegroundNotification object:nil];
self.pull = [[PullToRefreshView alloc] initWithScrollView:(UIScrollView *) self.feedTableView];
[self.pull setDelegate:self];
[self.feedTableView addSubview:self.pull];
self.title = @"Latest";
}
- (void)fetchedData:(NSData *)responseData {
//parse out the json data
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSMutableArray* latestFeed = [json objectForKey:@"posts"]; //2
self.feedUpLoads = latestFeed;
NSLog(@"objects: %@", latestFeed); //3
[self.feedTableView reloadData];
[SVProgressHUD dismiss];
}
これはすべて正常に機能し、バックグラウンド スレッドに読み込まれるデータを取得し、テーブルに必要なすべての詳細を含む投稿が表示されます。私が抱えている問題は、SVProgressHUD
がまったく表示されないことです。fetchData メソッドに行を入れても、[SVProgressHUD showInView
まだ表示されません。(ちなみに、メソッドSVProgressHUD
でたとえば実際に表示できるので、コードが機能することを知っています。viewWillAppear
私がそれを呼び出している時点でビューがまだ完全に存在していないため、機能していないと思いますか? しかし、その場合、フィードが呼び出されている間に表示されるようにどこで呼び出す必要があり、どこで削除する必要がありますか?
どんな助けでも大歓迎です!前もって感謝します!!