iphone - Storyboard ViewController 中的多态性

标签 iphone ios6 segue xcode-storyboard

我想知道如何在 iPhone XCode Storyboard ViewController 中实现多态性。

这是我的问题: 我的应用程序中的两个不同的 ViewController 正在连接到一个通用的 ViewController。

这个常见的 ViewController 的行为有所不同,具体取决于它所隔离的 VC - 执行不同的远程 API 服务器调用和 CoreData 获取(第一个它在表中显示所有用户,另一个它显示管理员列表 - 子类用户,我可能有第三个将显示过滤后的用户列表)。

这个通用 ViewController 在我的应用程序中非常中心,并且与许多其他 ViewController 相关。因此,在我看来,用子类在 stroyboard 上复制它似乎并不正确。

不幸的是,将用户列表传递给 ViewController 并不是一种选择,因为在该列表上的不同搜索是通过 ViewController 方法执行和实现的。

通过子类化和使用多态性,并根据源转场将 Storyboard中的 ViewController 分配给子类来实现这些不同的行为是有意义的。

有什么方法可以在继续时动态设置 Storyboard ViewController 类吗?

最佳答案

different remote API server calls and CoreData fetches are performed

您在这里真正要指出的是数据接口(interface)与 View 接口(interface)不同。没关系。您应该拿出一个单独的对象来负责获取数据。您可以将该对象传递给 View Controller ,而不是对 View Controller 进行多态处理。这称为策略模式,在 Cocoa 中很常见。

这与委派几乎相同,您也可以在此处使用委派。当您进行 segue 时,调用 View Controller 会在接收 View Controller 上设置委托(delegate)。然后,该委托(delegate)负责返回数据对象,再次使接收 View Controller 免于多态。

关于iphone - Storyboard ViewController 中的多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17924975/

相关文章:

ios - 禁用 CPPickerView 不起作用

objective-c - iOS 6 通讯录清空 kABPersonPhoneProperty

ios - 获取屏幕上的所有触摸

ios - 使用 TableView 继续

iphone - Objective C 中的 TableView 数据更新

iphone - 移动Safari : Disable scrolling pages "out of screen"

ios - Swift - 摇动手势关闭 subview Controller

iphone - 将 View 1 设置为 UIscrollview 中的默认 View 页面

iphone - iOS 中的像素和点是什么?