首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >故事板:如何在多个地方使用相同的视图控制器?

故事板:如何在多个地方使用相同的视图控制器?
EN

Stack Overflow用户
提问于 2014-09-30 13:54:06
回答 1查看 711关注 0票数 0

多年来,我已经为iPhone应用程序编写了自己的视图代码,但现在我又重新看了看故事板。

在我的代码中,一个常见的模式是在两个地方使用相同的视图控制器,但是UI稍有变化。例如,在浏览品牌列表(BrandListController)时,我希望显示系统中所有品牌的表视图;点击一个品牌会显示其产品。但是,当按品牌过滤项目时,我想显示一个品牌的表视图(内容和单元格外观相同),但我想点击一行将您带回过滤器屏幕,而不是显示该品牌的项目。我还想在右上角的“搜索”栏按钮项目。

在代码中很容易实现这些事情,只需添加一个布尔成员变量,这样控制器就可以在出现之前进行配置。

但是我怎么用故事板来做这个呢?对于同一个BrandListController实例,我可以有多个控制器,但同样,我希望控制器具有不同的行为,并根据其使用方式包括/排除UI元素。在故事板中创建两个单独的BrandListController实例似乎是个坏主意,因为这样我就必须复制所有的出口连接,并且必须保持更改的同步。但我的其他选择是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-30 13:58:39

需要意识到的是,故事板并不一定只需要使用单一的故事板。

你可以使用多个故事板或使用它们与尼克斯等.

但是,在这种情况下,仍然可以在控制器上使用布尔属性。

然后,在其他控制器的prepareForSegue方法中,可以设置此布尔属性以更改行为。您甚至可能有几个nib,它根据属性将UI的一小部分定义到视图中。

我也做过这样的事情,把积木传给观景器。

例如..。

我有一个“用户搜索”控制器,它的默认行为是,如果您点击一个用户,它将推送到该用户的配置文件页面。

但是我可以传入一个代码块,例如,该代码块将取消搜索控制器,并使用选定的用户为他们创建一个新消息(或其他什么)。或者完全取决于我传入的代码块。

编辑

哈哈,再读一遍你的问题。我用积木做的事也会对你有用的。我创建了一个名为userTappedBlock之类的块属性。如果存在这种情况,那么当单元格被点击时,我运行它。如果没有,我会做默认的行为。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26122639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档