【发布时间】:2015-10-15 05:54:32
【问题描述】:
当我打开 TasksTableViewController 时,问题没有出现。但是当我像这样从 TaskTableVC 打开另一个视图控制器时:
FilterTasksTableViewController * fttvc = [self.storyboard instantiateViewControllerWithIdentifier:@"FilterTasksTableViewController"];
fttvc.delegate = self;
UINavigationController * navVC = [self.storyboard instantiateViewControllerWithIdentifier:@"PopoverNavigationController"];
[navVC setViewControllers:@[fttvc]];
[self presentViewController:navVC animated:YES completion:nil];
回到TaskTableVC,问题就出现了。 当我“下拉刷新”时,它恢复正常。
在我的 TaskTableVC 代码中:
- (void)viewWillAppear:(BOOL)animated {
//other code
[self populate];
}
- (void)viewDidLoad {
dispatch_async(dispatch_get_main_queue(), ^{
self.refreshControl = [[UIRefreshControl alloc] init];
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@" "];
[self.refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:self.refreshControl];
});
[self populate];
}
- (void)populate {
TaskHandler *handler = [[TaskHandler alloc] initWithContext:_context];
NSArray *allTasks = [handler getAll];
_tasks = [self filterTasks:allTasks];
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"startDate" ascending:NO];
NSArray *descriptors = [NSArray arrayWithObjects:descriptor, nil];
_tasks = [[NSMutableArray alloc] initWithArray:[_tasks sortedArrayUsingDescriptors:descriptors]];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
[self.refreshControl endRefreshing];
});
}
我希望你能帮助我解决这个奇怪的问题。
【问题讨论】:
-
你在
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;UITableView 委托方法中返回什么?我认为您的 UITableViewCell 的高度不正确。 -
您好,您只需要打开 translucent = True 或添加一个额外的黑白表和您的主视图。目前,您的表格是您视图中的第一个子视图。
标签: ios objective-c uitableview uirefreshcontrol