我想在xcode中实现以下。
我有一个 View Controller 。在这个 UIViewController 我有一个 UITabBar 。在它们下面是一个 UIView 。将 UITableView 添加到 UIView 的最佳方法是什么?然后能够单击 UITableViewCell 并打开另一个 UIViewController 以显示有关 UITableViewCell 的更多信息?
这是我的 Storyboard的当前设置:
你能给我一个解决这个问题的方法吗?谢谢
Best Answer-推荐答案 strong>
您需要解决您的问题,但我不确定您的问题是什么。
在 Storyboard 中,将 UIView 拖到 UIViewController 中。然后在该 UIVIew 中拖动一个 UITableView (不是 Controller )。
您将能够在左侧看到 View 层次结构。
然后将你的tableview datasource 和 delegate 链接到父 Controller 。
在您的 .h 文件中,添加 UITableViewDataSource 和 UITableViewDelegate 协议(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 年经验...)。
- 在您的父 View Controller 中准备好所有可能性,例如,如果您只有 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/
|