OGeek|极客世界-中国程序员成长平台

标题: ios - iOS Xcode 中的 UIViewController 中的 UIView 中的 UITableView [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 06:50
标题: ios - iOS Xcode 中的 UIViewController 中的 UIView 中的 UITableView

我想在xcode中实现以下。

interface

我有一个 View Controller 。在这个 UIViewController 我有一个 UITabBar。在它们下面是一个 UIView。将 UITableView 添加到 UIView 的最佳方法是什么?然后能够单击 UITableViewCell 并打开另一个 UIViewController 以显示有关 UITableViewCell 的更多信息?

这是我的 Storyboard的当前设置:

Current Storyboard

你能给我一个解决这个问题的方法吗?谢谢



Best Answer-推荐答案


您需要解决您的问题,但我不确定您的问题是什么。

在 Storyboard 中,将 UIView 拖到 UIViewController 中。然后在该 UIVIew 中拖动一个 UITableView(不是 Controller )。

您将能够在左侧看到 View 层次结构。

然后将你的tableview datasourcedelegate 链接到父 Controller 。

在您的 .h 文件中,添加 UITableViewDataSourceUITableViewDelegate 协议(protocol),还将您的 tableview 链接为 Outlet

在您的 .m 文件中,添加 tableview 委托(delegate)方法(numberOfRowsInSection:cellForRowAtIndexPath:)

我还建议在 tableview 方法中添加 didSelect:,因为你会需要它。

你可以走了。

这实际上与创建 tableview 完全相同,只是你的 tableview 是 UIView 的 subview ,如果涉及到代码,这根本不重要。您唯一需要“小心”的是在 Storyboard 中正确构建 View ,并确保约束不会因某种原因使您的 tableview 无法使用。

检查 one of my previous answers我在这里解释了如何制作一个 tableview 并让它在传递数据时加载另一个 Controller ,如果我在这里写的所有内容仍然让你感到困惑,那么你可能需要这样做。

跟进:

从您的评论中,我了解到您的 UIView 的这个 subview 可以是不同的东西;一个 tableview、一个 webview 等等。

有很多方法可以做到这一点,据我所知,有两种方法既简单又可靠(根据我作为开发人员的 <1 年经验...)。

  1. 在您的父 View Controller 中准备好所有可能性,例如,如果您只有 2 种可能性,那就“可以”。
  2. 最好的方法是准备一个容器 View (字面意思是容器 View ),它会根据您的需要加载不同的 OTHER View Controller 。

我认为选项 2 更可靠,因为它将代码分成不同的类,允许您独立修改每个类,并且您可以轻松删除/添加新 View 。

据我所知,您的父 Controller 中会有某种 switch 语句,它将加载所需的 UIViewController(或 tableview 或任何东西)。无论你在那里做什么都会像往常一样,但会被限制在另一个 VC 中的一个较小的 View 中。

您可以在 Storyboard 中创建该容器 View ,并使用 segue(ToTable、ToWeb、ToCollection)预先链接每个其他 VC,这就是将容器 View 链接到您的 3 个 UIViewController 的 segue 名称的很好示例。

请注意,如果需要,您可以传递数据,但您将让所有单独的 Controller 处理它们自己的东西,即使它在您当前的 vc 中可见。

关于ios - iOS Xcode 中的 UIViewController 中的 UIView 中的 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29939225/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4