ios - 在不同的 Controller 中处理 UITableViewDelegate 事件

标签 ios

我在 iOS 中使用 UIViewControllerContainment 功能。我的容器 Controller 称为 mainViewController。它由 menuViewController 和 contentViewController 组成。 menuViewController 是一个 UITableViewController。

现在,我希望当我在 menuViewController 中选择一行时,我在 mainViewController 中处理一个事件。我必须在不更改 menuViewController 代码的情况下完成所有这些工作。

** 我知道我可以使用委托(delegate)来调用 mainViewController 但使用委托(delegate)会改变 ** menuViewController 代码,我不想这样做。

最佳答案

假设 menuViewController 没有设计某种委托(delegate)或回调 block (或者你不会问这个问题),你的选择真的非常有限,而且没有好的选择,因为任何选项会违反您试图利用的遏制概念。

在我看来,您的选择是:

  1. 修改 menuVieController 以添加对项目选择的委托(delegate)或 block 回调。这是最好的方法,因为它可以很好地包含和隔离 menuViewController。

  2. 子类化 menuViewController,覆盖 didSelectCell... 并执行第 1 步。可能需要确保您也调用 super。这很糟糕,因为您对 menuViewController 的内部结构做出了假设并违反了包含。

  3. 窃取 tableView 委托(delegate)并自己处理。这对 menuViewController 的内部结构做出了更多假设。

最重要的是,我真的建议您重新考虑不更改 menuViewController 的决定。

关于ios - 在不同的 Controller 中处理 UITableViewDelegate 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22869398/

相关文章:

ios - 使用 "The network connection was lost."在 swift 中随机获取 "Alamofire.request"

ios - 快速将 UIBarButton 项目的标识符更改为图像

ios - 如何升级到 Xcode 4.5

ios - 我的 tableview 单元格上的组件不可见

ios - OpenGL - 计算着色器 - iOS - 选项?

ios - JSONModel 和 OData

ios - 为什么推送另一个 View Controller 的动画不流畅?

ios - 由于信号 : Segmentation fault,Swift 命令失败

ios - asihttprequest图片下载

iOS : FFMPEG Video stream to server gives 'Protocol not found' for RTSP