objective-c - 子类化或不子类化,UITabBarController

标签 objective-c ios cocoa-touch uikit

所以,就像我反对 UITabBarController 的许多人一样,它不适合子类化并且必须是 Root View Controller 特性。

我必须管理所有 subview 的行为,而执行它的自然方式似乎有一个 Root View Controller ,它们向其报告并在它们之间中继消息。在我当前的设置中,我有 PBModalRootViewController 实例化 UITabBarController 并将其设置为 subview 。 PBModalRootViewController 管理 subview 并负责关闭模态视图。 like so http://p.twimg.com/Abu0iWDCMAAwhuy.jpg:large

这是一个非常干净的解决方案但是它会导致 UITabBarController 出现狡猾的行为,我认为它不喜欢作为 subview 。这是我在发货前需要解决的问题,我有一些解决方案:

  1. 继承 UITabBarController 并在以后处理潜在的影响。

  2. 将 PBModalRootViewController 重新调整为 PBModalSupervisor。即:让它成为一个启动 tabBarController 和 subview 的类,返回一个很好的配置 View ,然后为我关注所有这些 View 。
    这可能会导致很多困惑和额外的指针,这可能很难管理。

  3. 以某种巧妙的方式简单地重新设计架构,这会很棒,任何想法...

  4. 所有我没想到的东西......

  5. 我做错了,需要用鳟鱼打耳光!

  6. 使用 NSNotificationCentre,保存、解散等操作可能会有点困惑,但仍然需要某个地方来管理解散逻辑。

  7. UITabBarController 的类别?我想这将是绕过子类化的一种方法..

最佳答案

我认为设置主管对象绝对是可行的方法。这取决于您需要在不同的 View Controller 之间跟踪什么类型的信息。如果它是每个 Controller 需要了解和/或显示的数据,则需要将该数据分离出来,并且数据处理对象不应该直接处理 View ,因此它不应该是 View Controller 。

关于objective-c - 子类化或不子类化,UITabBarController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7771042/

相关文章:

iPhone:从 subview 调用父/ super 方法

ios - UINavigationController subview 在隐藏/显示导航栏后不会回来

iOS 如何在更改页面时动态更改 PageControl 颜色?

ios - 从选定的帐户SLComposeViewController获取Twitter详细信息

ios - 如何让应用不频繁地在后台搜索重大更新?

ios - 如何使用 `AVCapturesession` 中的 `didOutputSampleBuffer` 播放音频缓冲区

objective-c - 对象值在方法之间传递

iphone - iOS 初学者 : NSMutableArray + int variable for storing array index position (Where is the connection)

iphone - 在 iPhone 上分割 UIImage

cocoa-touch - 如何将 UICollectionViewCell 的可触摸区域扩展到其边界之外?