У меня есть tabBarController в моем приложении. когда коснитесь другого tabBar, который является UITableViewController, вид пуст и cellForRowAtIndexPath dosen't fire (numberOfRowsInSection не равен нулю или нулю).tabBarController не запускает cellForRowAtIndexPath UITableViewController
Кодекс:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
[[viewController navigationController] popToRootViewControllerAnimated:NO];
switch (tabBarController.tabBar.selectedItem.tag) {
case 1:
NSLog(@"Home");
break;
case 2:
NSLog(@"Profile");
break;
case 3:
{
NSLog(@"Bookmark");
BookmarkCategoryViewController *bookmarkVC =[self.storyboard instantiateViewControllerWithIdentifier:@"BookmarkCategory"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
/// Background work
BookmarkManager *p = [[BookmarkManager alloc]init];
[p fetchBookmarks:self.categoryId];
bookmarkVC.entries = p.appRecordList;
bookmarkVC.categoryId = self.categoryId;
bookmarkVC.ID_list_entries = _ID_list_entries;
[bookmarkVC.tableView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
/// Update UI
[tabBarController setSelectedIndex:1];
});
});
}
break;
case 4:
NSLog(@"Setting");
break;
default:
NSLog(@"Home");
break;
}
}
но тот же самый код, когда изменение:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
[[viewController navigationController] popToRootViewControllerAnimated:NO];
switch (tabBarController.tabBar.selectedItem.tag) {
case 1:
NSLog(@"Home");
break;
case 2:
NSLog(@"Profile");
break;
case 3:
{
NSLog(@"Bookmark");
BookmarkCategoryViewController *bookmarkVC =[self.storyboard instantiateViewControllerWithIdentifier:@"BookmarkCategory"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
// Background work
BookmarkManager *p = [[BookmarkManager alloc]init];
[p fetchBookmarks:self.categoryId];
bookmarkVC.entries = p.appRecordList;
bookmarkVC.categoryId = self.categoryId;
bookmarkVC.ID_list_entries = _ID_list_entries;
[bookmarkVC.tableView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
/// Update UI
[bookmarkVC setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self.navigationController pushViewController:bookmarkVC animated:YES];
});
});
}
break;
case 4:
NSLog(@"Setting");
break;
default:
NSLog(@"Home");
break;
}
}
работать правильно! но tabBarController скрыть и другое представление нажать на вид tabBarController. Спасибо за помощь.
Вы не можете вызвать 'reloadData' в фоновом режиме. – Sulthan