【问题标题】:iOS - embedded view controller prevent update of root view controller UI elements?iOS - 嵌入式视图控制器阻止更新根视图控制器 UI 元素?
【发布时间】:2017-04-26 02:39:31
【问题描述】:

我在另一个(主)视图控制器中有一个嵌入式故事板构建的视图控制器。在主视图控制器中,我进行一些处理并通过主视图控制器中的 UI 元素显示过程参数。 UI 元素的更新在主线程上运行并在后台处理,所以当我从主 VC 调用处理方法时,一切正常。

当我从嵌入式 VC 调用方法时会出现问题 - 由于某种原因 UI 元素不会更新!?当我在方法中设置断点时,它被调用并且 NSLog 给出正确的输出,但没有更新 UI 元素。

我的假设是控制器的层次结构阻止了主 VC 的更新!?为了证明这一点,我在处理方法中添加了一个日志来查找谁是顶级 VC:

NSArray *VC=[[self navigationController] viewControllers];
NSLog(@"TopVC: %@", VC.lastObject);

通过调用 MainVC 的方法(更新元素很好)我得到:

TopVC: <MainViewController: 0x1003067d0>

当我从嵌入式 VC 调用相同的方法(不更新元素)时,我得到:

TopVC: (null)

有没有办法将“焦点”设置回主 VC 来解决这个问题?

【问题讨论】:

    标签: ios objective-c cocoa-touch uiviewcontroller


    【解决方案1】:

    主视图控制器是嵌入式视图控制器的parentViewController。知道了这一点,您就可以从嵌入式视图控制器与主视图控制器进行通信。

    【讨论】:

      【解决方案2】:

      我无法解决这个问题,所以我决定重新设置并删除嵌入式视图控制器并将控件添加到主视图控制器 - 现在一切正常!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-04
        • 2012-09-25
        • 1970-01-01
        相关资源
        最近更新 更多