Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (void) viewDidLoad
- {
- [super viewDidLoad];
- UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
- [refreshControl addTarget:self action:@selector(doLoad) forControlEvents:UIControlEventValueChanged];
- self.refreshControl = refreshControl;
- }
- - (void) doLoad
- {
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
- // Instead of sleeping, I do a webrequest here.
- [NSThread sleepForTimeInterval: 5];
- dispatch_async(dispatch_get_main_queue(), ^{
- [tableView reloadData];
- [self.refreshControl endRefreshing];
- });
- });
- }
- - (void)viewDidAppear:(BOOL)animated
- {
- [super viewDidAppear:animated];
- [self.refreshControl beginRefreshing];
- }
- - (void) viewWillAppear: (BOOL) animated
- {
- [super viewWillAppear: animated];
- self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
- [self.refreshControl beginRefreshing];
- // kick off your async refresh!
- [self doLoad];
- }
- @interface TSTableViewController : UITableViewController
- @end
- #import "TSTableViewController.h"
- @implementation TSTableViewController
- {
- NSMutableArray* _dataItems;
- }
- - (void) viewDidLoad
- {
- [super viewDidLoad];
- self.refreshControl = [UIRefreshControl new];
- [self.refreshControl addTarget: self
- action: @selector( onRefresh: )
- forControlEvents: UIControlEventValueChanged];
- }
- - (void) viewWillAppear:(BOOL)animated
- {
- [super viewWillAppear: animated];
- self.tableView.contentOffset = CGPointMake(0, -self.refreshControl.frame.size.height);
- [self.refreshControl beginRefreshing];
- [self onRefresh: nil];
- }
- - (void) onRefresh: (id) sender
- {
- double delayInSeconds = 2.0;
- dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
- dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
- _dataItems = [NSMutableArray new];
- for ( int i = 0 ; i < arc4random() % 100 ; i++ )
- {
- CFUUIDRef uuid = CFUUIDCreate( NULL );
- [_dataItems addObject: CFBridgingRelease(CFUUIDCreateString( NULL, uuid)) ];
- CFRelease( uuid );
- }
- [self.refreshControl endRefreshing];
- [self.tableView reloadData];
- });
- }
- #pragma mark - Table view data source
- - (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView
- {
- return 1;
- }
- - (NSInteger) tableView:(UITableView *) tableView numberOfRowsInSection: (NSInteger) section
- {
- return _dataItems.count;
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault
- reuseIdentifier: nil];
- cell.textLabel.text = [_dataItems objectAtIndex: indexPath.row];
- return cell;
- }
- @end
- - (void) viewDidAppear: (BOOL) animated
- {
- [super viewDidAppear: animated];
- UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
- [refreshControl addTarget:self action:@selector(doLoad) forControlEvents:UIControlEventValueChanged];
- self.refreshControl = refreshControl;
- [self.refreshControl beginRefreshing];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement