所以,就像我反对 UITabBarController 的许多人一样,它不适合子类化并且必须是 Root View Controller 特性。
我必须管理所有 subview 的行为,而执行它的自然方式似乎有一个 Root View Controller ,它们向其报告并在它们之间中继消息。在我当前的设置中,我有 PBModalRootViewController 实例化 UITabBarController 并将其设置为 subview 。 PBModalRootViewController 管理 subview 并负责关闭模态视图。 like so http://p.twimg.com/Abu0iWDCMAAwhuy.jpg:large
这是一个非常干净的解决方案但是它会导致 UITabBarController 出现狡猾的行为,我认为它不喜欢作为 subview 。这是我在发货前需要解决的问题,我有一些解决方案:
继承 UITabBarController 并在以后处理潜在的影响。
将 PBModalRootViewController 重新调整为 PBModalSupervisor。即:让它成为一个启动 tabBarController 和 subview 的类,返回一个很好的配置 View ,然后为我关注所有这些 View 。
这可能会导致很多困惑和额外的指针,这可能很难管理。以某种巧妙的方式简单地重新设计架构,这会很棒,任何想法...
所有我没想到的东西......
我做错了,需要用鳟鱼打耳光!
使用 NSNotificationCentre,保存、解散等操作可能会有点困惑,但仍然需要某个地方来管理解散逻辑。
UITabBarController 的类别?我想这将是绕过子类化的一种方法..
最佳答案
我认为设置主管对象绝对是可行的方法。这取决于您需要在不同的 View Controller 之间跟踪什么类型的信息。如果它是每个 Controller 需要了解和/或显示的数据,则需要将该数据分离出来,并且数据处理对象不应该直接处理 View ,因此它不应该是 View Controller 。
关于objective-c - 子类化或不子类化,UITabBarController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7771042/