UIViewController里面的UITableView没有显示

时间:2013-10-10 18:50:36

标签: ios objective-c uitableview uistoryboard

我正在尝试在UIViewController中设置UITableView。我这样做是因为它允许我添加一个带保存和取消按钮的顶栏。我正在使用storyboard和静态单元格对tableview进行建模以获取用户的输入(想想Apple的日历应用程序中的创建新事件)。我在Xcode中有视图,但在手机或模拟器上运行时,桌面视图不会显示。这是Xcode中的简单视图:

enter image description here

这就是它在运行时的显示方式:

enter image description here

我已经阅读过关于添加委托和设置数据源等的内容,但实际上这只是带有文本字段的静态单元格,没有加载数据。为什么会发生这种情况以及可以采取哪些措施来解决这个问题?谢谢!

4 个答案:

答案 0 :(得分:2)

@ Made2k看起来您找到了一个解决方案,但对于遇到相同问题的其他人,请注意您只能在{{1}内使用UITableView静态单元格} 即可。这不是一个记录良好的事实,但显然只有UITableViewController知道如何处理静态单元格的布局,而常规UITableViewController只需要实现UIViewControllerUITableViewDelegate协议,以便以编程方式或通过Storyboard / Nib添加UITableView中的内容显示。

希望这能节省一些时间。 @ Made2k的解决方案很好,但确实让你的故事板不必要地繁忙。如果您不需要使用UITableViewDataSource,那么只需在常规UIViewController内完成工作并省去头疼。

答案 1 :(得分:1)

如果要在UITableView中使用UIViewController,则必须使ViewController成为数据源和TableView的委托,然后实现方法

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

如果是静态表格,请在cellForRowAtIndexPath中返回静态单元格的出口。有关详细说明,请查看以下答案: https://stackoverflow.com/a/19110821/3110536

答案 2 :(得分:0)

我最后以一种不同的方式思考这个问题。我认为我遇到的问题是我想要导航控制器提供的所有功能,但我需要将其作为控制器的基础,即无需返回。我认为这样做的唯一方法是创建一个UIViewController并在其中添加表视图等,但我想到的只是创建一个新的导航控制器,现在这个视图显示为根视图像这样:

enter image description here

我不知道这是否是最佳做法,但希望如果遇到这个问题,它可以帮助其他人。

答案 3 :(得分:0)

男人,跟着Hack真的有效! 你应该试一试!
在我的要求中,我也希望在我的静态单元格中添加按钮!并切换TableView的可见性

[self.tableView setHidden:YES/NO];

并使用新数据重新加载

[self.tableView reloadData];

以这种方式做很多事情是可能的!

https://stackoverflow.com/a/19110821/1752988

希望以上链接对您有所帮助! (Y)