【问题标题】:Best way to find the element in view hierarchy在视图层次结构中查找元素的最佳方法
【发布时间】:2017-05-10 12:41:29
【问题描述】:

如果您需要更改某些内容,我想知道您如何导航到 UIViewController 堆栈中更高级别的视图。

其中一个例子是如果您有 TabViewController 并且需要在选项卡之间进行通信,但这不是唯一的情况。

我现在做的是这样的

let tabOne = self.tabBarController?.childViewControllers.first?.childViewControllers.first as? tabOneController

let topController = ((self.viewControllers[0] as! RootViewController).viewControllers![0] as! UINavigationController).topViewController as? MySpecialViewController

这种方法的问题是你真的需要知道视图的层次结构,你必须依赖它,如果你稍微改变层次结构,你就需要改变它。

第二个问题是,如果您在一个团队中工作,那么这段代码非常令人沮丧,并且对于其他团队成员来说描述性不够。

我的问题是,什么是正确的方法/最佳实践,或者:您如何做到这一点?

【问题讨论】:

    标签: swift xcode uiviewcontroller structure code-readability


    【解决方案1】:

    iOS 中一个非常常见的习惯用法是让选项卡控制器提供一个委托接口,并让顶部控制器向它传递一个实现。一个简单的方法是让顶层控制器自己实现它。

    在该解决方案中,tabOne 不知道它位于选项卡控制器中——它只是调用其委托方法。选项卡控制器会做任何必要的事情。

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 2023-03-14
      相关资源
      最近更新 更多