Estoy tratando de implementar el UIRefreshControl
en mi aplicación. Tengo un archivo xib y agregué un UITableViewController
al archivo de punta vacía y establecí la propiedad de actualización en "habilitada". También agregué código al viewDidLoad
y un método de actualización personalizado. El problema es que tengo un error que no puedo encontrar ninguna información sobre .... en mi viewDidLoad
consigo "Propiedad 'refreshControl
' no se encuentra en objeto de tipo ViewController
"UIRefreshControl issues
- (void)viewDidLoad{
[super viewDidLoad];
self.myTableView =
[[UITableView alloc] initWithFrame:self.view.bounds
style:UITableViewStyleGrouped];
self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
self.myTableView.delegate = self;
self.myTableView.dataSource = self;
[self.view addSubview:self.myTableView];
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refresh addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refresh;
}
-(void)refreshView:(UIRefreshControl *)refresh {
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Refreshing data..."];
// custom refresh logic would be placed here...
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM d, h:mm a"];
NSString *lastUpdated = [NSString stringWithFormat:@"Last updated on %@",
[formatter stringFromDate:[NSDate date]]];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:lastUpdated];
[refresh endRefreshing];
}
no tengo ni idea de por qué la propiedad no está disponible ... ¿Qué me estoy perdiendo?
Parece que necesito heredar de UITableViewController
en mi archivo ViewController.h
. Si ya tengo UITableView
, ¿cómo heredo de ambos? Si cambio de código ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
-ViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
entonces consigo un error:
error: NSInternalInconsistencyException',
reason: '-[UITableViewController loadView] loaded the "ViewController_iPhone" nib but didn't get a UITableView.'
Esto no es compatible y puede fallar en la versión futura de iOS. La única forma admitida de usar un 'UIRefreshControl' es con un' UITableViewController'. –
@ACB, eso es exactamente lo que necesitaba !!! Gracias a millones. ¡Ojalá pudiera darte más accesorios! – brianhevans
Sí, puede tener un UIRefreshControl en una clase UIViewController con una UITableView y que agregó manualmente. Los comentarios de otras respuestas pueden ser ciertos (no va con los documentos), pero este pequeño truco funciona en iOS6. –