我有一个UItableView,使用UIStoryboard和Core Data。在iPhone上,UITableView正常加载但不在iPad上。
tableViewController更新navBar标题并正确设置toolbarItems,因此非常确定故事板文件正常加载。加载TVC时,我打印出应填充表格的项目数(正确值),但numberOfRowsInSection显示没有项目。
在TVC内部,没有以设备为中心的代码路径。故事板中的委托和数据源被连接起来,故事板ID被设置,电视子类也是如此。
我在这里完全失败了。如果我要发布特定代码,请在评论中告诉我。
AppsListTableViewController *appsList = (AppsListTableViewController *)[self appListTableViewController];
UINavigationController * masterNavController = [[UINavigationController alloc] initWithRootViewController:appsList];
masterNavController.toolbarHidden = NO;
masterNavController.navigationBar.barStyle = UIBarStyleDefault;
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
BugsForAppDetailTableViewController *bugsForApp = (BugsForAppDetailTableViewController *)[self bugsForAppTVC];
[appsList setDetailViewController:bugsForApp];
UINavigationController * detailNavController = [[UINavigationController alloc] initWithRootViewController:bugsForApp];
detailNavController.toolbarHidden = NO;
detailNavController.navigationBar.barStyle = UIBarStyleDefault;
[self.splitViewController setViewControllers:@[masterNavController, detailNavController]];
self.splitViewController.delegate = appsList;
}
else if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
[_drawerController setCenterViewController:masterNavController];
[_drawerController closeDrawerAnimated:YES completion:^(BOOL finished) {
if (finished) {
}
}];
}
bugsForAppTVC getter
- (BugsForAppDetailTableViewController *)bugsForAppTVC {
if (_bugsForAppTVC == nil) {
UIStoryboard *storyboard = nil;
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
} else {
storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
}
BugsForAppDetailTableViewController * centerViewController = (BugsForAppDetailTableViewController *)[storyboard instantiateViewControllerWithIdentifier:@"BugsForAppDetailTableViewController_ID"];
[centerViewController setMOContext:[NSManagedObjectContext MR_defaultContext]];
_bugsForAppTVC = centerViewController;
}
return _bugsForAppTVC;
}
答案 0 :(得分:0)
您需要将有关表格视图控制器的iPhone故事板设置与iPad故事板的设置进行比较。检查这些项目:
delegate
设置datasource
设置IBOutlet
已正确定义