【发布时间】:2015-01-03 05:44:48
【问题描述】:
情况:两个 UITabBarController,每个都有自己的选项卡,但 both 中的最后一个选项卡是相同的,所以希望 一个 UIViewController 显示内容。
运行时问题:共享项仅在显示时出现在一个选项卡集中。
问题:有人知道如何实现这项工作吗?
链接到故事板设置的外部图形:(抱歉,没有足够的声望在这里发布图片!) Storyboard graphic
带有该情节提要的 Xcode 项目: XCode Project
每个选项卡内容项都有自己的 UIViewController 类。除了使后退按钮起作用的行之外,它们不包含任何代码。
(是的,我知道这很奇怪。真实情况是一个 iPad 应用程序,其中选项卡控制器显示在弹出框中;弹出框是“属性编辑器”,其中不同的对象具有不同的属性,但都共享一组共同的属性...因此,一个标签用于“唯一”道具,一个共享标签内容用于所有对象都具有的“通用”道具。)
我已经找到了几种方法来获得我想要的效果,但是如果这个故事板有效,那将是一个更容易的解决方案。
-- 其他信息,与问题有些无关--
我正在使用的替代解决方案:TabBarControllers 仅链接到一个 VC 作为选项卡内容。当该选项卡 VC 加载时,我使用代码 (a) 通过标识符从情节提要中实例化共享 VC,(b) 通过 [tabController setViewControllers:list animated:NO] 将新的 VC 对象添加到 TabBarController。
(我更不喜欢的另一种可能的解决方案:不使用 TabBarController,并在内容 VC 中显示我自己的“选项卡”图形,每个都显示“我自己”被选中。Yuk。)
所以我有一个可行的解决方案,我只是想知道为什么它不起作用(只是 iOS API 中的一个已知事物,或者一些可能使其正常工作的神奇属性设置?)
【问题讨论】:
-
注意不同关注点的类似问题(奇怪的事情发生在表格和重复使用的视图等......):stackoverflow.com/questions/8620619/…
-
我不确定您要完成什么。您在代码中添加第二个选项卡的解决方案可以在情节提要中完成,只需复制共享控制器并将一个实例连接到每个选项卡栏控制器即可。在任何一种情况下,您都会得到两个不同的“共享”控制器实例。
-
当我决定它需要具有不同的背景颜色和按钮布局时,我想要完成的是不必在“一个”故事板场景的多个副本中编辑 UI 布局。在此示例中,将只有两个副本。在我的实际应用中,可能会有 10 多个,因此希望分享。试图避免将 UI 外部化为 .XIB 文件并从那里加载,而这正是故事板的目的。