我正在尝试在UIViewController中设置UITableView。我这样做是因为它允许我添加一个带保存和取消按钮的顶栏。我正在使用storyboard和静态单元格对tableview进行建模以获取用户的输入(想想Apple的日历应用程序中的创建新事件)。我在Xcode中有视图,但在手机或模拟器上运行时,桌面视图不会显示。这是Xcode中的简单视图:
这就是它在运行时的显示方式:
我已经阅读过关于添加委托和设置数据源等的内容,但实际上这只是带有文本字段的静态单元格,没有加载数据。为什么会发生这种情况以及可以采取哪些措施来解决这个问题?谢谢!
答案 0 :(得分:2)
@ Made2k看起来您找到了一个解决方案,但对于遇到相同问题的其他人,请注意您只能在{{1}内使用UITableView
静态单元格} 即可。这不是一个记录良好的事实,但显然只有UITableViewController
知道如何处理静态单元格的布局,而常规UITableViewController
只需要实现UIViewController
和UITableViewDelegate
协议,以便以编程方式或通过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并在其中添加表视图等,但我想到的只是创建一个新的导航控制器,现在这个视图显示为根视图像这样:
我不知道这是否是最佳做法,但希望如果遇到这个问题,它可以帮助其他人。
答案 3 :(得分:0)
男人,跟着Hack真的有效!
你应该试一试!
在我的要求中,我也希望在我的静态单元格中添加按钮!并切换TableView的可见性
[self.tableView setHidden:YES/NO];
并使用新数据重新加载
[self.tableView reloadData];
以这种方式做很多事情是可能的!
https://stackoverflow.com/a/19110821/1752988
希望以上链接对您有所帮助! (Y)