使用PresentViewController而不是storyboard不显示单元格数据?

时间:2013-11-21 00:42:49

标签: ios iphone objective-c uitableview storyboard

我试图创建的特定tableview的单元格数据如果由storyboard调用则显示文本和图像,但如果使用PresentViewController(无故事板)则不会。单元格仍然可以单击并导致带有图像的另一个视图,但实际的tableview上的图像和文本不会显示。

这就是我的TableViewController的创建方式:

TableViewController *myVC = [[TableViewController alloc] initWithDismissButton];
[self presentViewController:myVC animated:YES completion:nil];

3 个答案:

答案 0 :(得分:1)

如果以这种方式创建视图控制器,则不会加载故事板中的内容。使用[self.storyboard instantiateViewControllerWithIdentifier:@"tableViewControllerIdentifier"];

答案 1 :(得分:0)

正如另一张海报所说,问题可能是segues触发了你的prepareForSegue方法。在故事板segue中,您可以在显示它之前配置目标视图控制器。

在上面发布的代码中,您将在alloc / init调用和presentViewController调用之间插入配置。

因此,如果您需要将一个数组传递给表视图控制器作为模型,代码可能如下所示:

TableViewController *myVC = [[TableViewController alloc] initWithDismissButton];
myVC.tableDataArray = arrayForTableVC;
[self presentViewController:myVC animated:YES completion:nil];

答案 2 :(得分:0)

在手动分配视图控制器之间使用故事板时存在一些差异:
•在故事板中:使用initWithCoder:初始化视图控制器 •手动:您调用的任何init方法。对于Table视图控制器,您应该调用initWithStyle:

重用细胞时也有很大的不同:
•在故事板中:您在界面构建器中设计原型单元,并且必须为其提供单元标识符。此单元格将使用tableView:cellForRowAtIndexPath:中的此标识符进行分配 •要手动创建单元格,您必须在初始化期间选择样式或创建所有自定义控件并将其作为子视图添加到单元格的contentView属性中(除非您使用的是{{1的子类)然后你必须在子类初始化程序中执行它)。