情节提要视图控制器中的多态性



我想知道如何在iPhone XCode情节板ViewControllers中实现多态性。

这是我的问题:我的应用程序中有两个不同的ViewController正在分段到一个公共的ViewController。

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

这个常见的ViewController在我的应用程序中非常集中,并与许多其他ViewController相分离。因此,对我来说,在stroyboard上用一个子类复制它似乎是不对的。

不幸的是,将用户列表传递给ViewController不是一个选项,因为对该列表的不同搜索是在ViewController方法中执行和实现的。

通过子类化和使用多态性来实现这些不同的行为是有意义的,并根据原始分段为故事板中的ViewController分配子类。

分段时有没有任何方法可以动态设置情节提要ViewController类?

执行不同的远程API服务器调用和CoreData获取

您在这里真正指出的是,数据接口与视图接口不同。没关系。您应该拉出一个单独的对象来负责获取数据。您可以将该对象传递给视图控制器,而不是对视图控制器进行变形。这被称为战略模式,在Cocoa中非常常见。

这几乎与委派相同,您也可以在此处使用委派。分段时,调用视图控制器会在接收视图控制器上设置一个委托。然后,该委托负责返回数据对象,再次将接收视图控制器从多态性中释放出来。

相关内容

  • 没有找到相关文章

最新更新