0

私の UIViewController には、UIView と UITableView があります。XML パーサー (RaptureXML) がテーブル データを解析している間、UIView は読み込み画面として機能します。完了すると、UITableView にデータが表示されます。

ただし、アプリを実行して別のView Controllerに移動してから戻ると、[self.tableView reloadData];これを取り出すとテーブルにデータが表示されないため、UITableViewが点滅します。これを別の場所に移動できますか?

@interface OffersViewController ()

@end

@implementation OffersViewController
@synthesize loadingView;

MoreCobaltOffers *currentFeed;
AppDelegate *appDelegate;

- (void)viewDidAppear:(BOOL)animated
{
[self.tableView addSubview:loadingView];

self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Navigation"]];

CustomStringParser *customStringParser = [[CustomStringParser alloc] init];

// Download and parse XML data
RXMLElement *rxml = [RXMLElement elementFromXMLData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.morecobalt.co.uk/rss/?t=offers"]]];

// Create an reference to AppDelegate
appDelegate = [[UIApplication sharedApplication] delegate];

// Create an array to store each feed
appDelegate.offersFeeds = [[NSMutableArray alloc] init];

// Loop Through XML Data
[rxml iterate:@"channel" usingBlock:^(RXMLElement *supportElement) {

    [supportElement iterate:@"item" usingBlock:^(RXMLElement *repElement) {

        // Assign element to string
        NSString *title = [repElement child:@"title"].text;
        NSString *subtitle = [repElement child:@"tagline"].text;
        NSString *description = [repElement child:@"description"].text;
        NSString *imageurl = [repElement child:@"image"].text;
        NSString *address = [repElement child:@"address"].text;

        // Assign element value to MoreCobalt.h propertys
        currentFeed = [MoreCobaltOffers alloc];
        currentFeed.title = title;
        currentFeed.imageurl = imageurl;
        currentFeed.addressline = address;

        // DESCRIPTION FORMATTING
        description = [customStringParser parseHTML:description];
        description = [customStringParser parseLinesMultiple:description];
        description = [customStringParser removeSocialSignifiers:description];
        description = [customStringParser appendTermsOfUse:description];
        currentFeed.description = description;

        // SUBTITLE FORMATTING
        subtitle = [customStringParser parseHTML:subtitle];
        subtitle = [customStringParser parseLinesSingle:subtitle];
        subtitle = [customStringParser removeSocialSignifiers:subtitle];
        currentFeed.subtitle = subtitle;

        // Add a new object to the feeds array
        [[appDelegate offersFeeds] addObject:currentFeed];
    }];
    [loadingView removeFromSuperview];
    [self.tableView reloadData];
}];
}
4

2 に答える 2

0

このようにコードを再構築すると、うまくいくはずです

// Loop Through XML Data
[rxml iterate:@"channel" usingBlock:^(RXMLElement *supportElement) {
[supportElement iterate:@"item" usingBlock:^(RXMLElement *repElement) {
[loadingView setHidden:No];
...
...
...
...
...
...
[loadingView setHidden:YES];

}];
}];
于 2013-10-31T18:59:47.713 に答える