【发布时间】:2017-05-25 20:42:15
【问题描述】:
当没有显示另一个视图控制器的 tableView 数据时,您将如何构建这样的应用程序?
如果 tableview 没有数据但我需要显示另一个视图,则 web 显示显示消息的方法。该视图控制器 (PlaceholderVC) 具有图像和标签(404 样式页面等)。
基本上在第一个屏幕(初始)上,用户点击一个按钮即可进入 tableView。在导航栏上,一个项目允许您创建一个新的表格单元格(数据)。除非您进入 tableView 控制器 (FeedVC),否则没有其他方法可以创建该项目。我很难让它正常工作。我实现的有很多错误:
//FeedVC
let data = []
viewDidLoad() {
[...]
}
numberOfRowsInSection {
if data.count == 0 {
showPlaceholderVC()
} else {
return data.count
}
}
func showPlaceholderVC() {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let pc: PlaceholderVC = storyboard.instantiateViewController(withIdentifier: "placeholderVC") as! PlaceholderVC
self.showDetailViewController(pc, sender: Any?.self)
}
那会带我去PlaceholderVC。那PlaceholderVC也可以presentVC创建一个新的表格单元格。当我点击保存时,它会关闭并返回PlaceholderVC。我可以将保存功能修改为presentFeedVC,但我感觉不对,应该是dismiss()。如果data > 0 和我创建了一个新数据,那么保存函数仍然会存在。看看发生了什么?保存应该运行一些代码然后关闭。我不想一层又一层地添加。
如果我可以在 tableView 上添加一个隐藏的图像和标签,我可以有一个干净的代码。那可能吗?当我将图像视图拖到 tableView 上时,它会缩小。
我可以让这一切发挥作用,但如果所有 VC 都有很多“礼物”,那就太多了。
【问题讨论】:
-
您可以在 tableview 上放置图像,您只需要正确设置约束并确保您使用的是 UIViewController 而不是 UITableViewController
-
@Paulw11 我想我会使用你的方法。我使用了一个视图并将其放在我的 tableview 下方(自动布局在这里工作)。然后在控制器中:
if data == 0, view.isHidden = true/false这对我来说是最好的。谢谢。
标签: ios swift xcode uiviewcontroller swift3