iOS - 嵌入式视图控制器阻止更新根视图控制器UI元素?

时间:2016-12-10 21:12:57

标签: ios objective-c cocoa-touch uiviewcontroller

我在另一个(主)视图控制器中有一个嵌入式故事板构建的视图控制器。在主视图控制器中,我进行一些处理,并通过主视图控制器中的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)

有没有办法设置&#34;焦点&#34;回到VC主要来解决这个问题?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我无法解决这个问题所以我决定重新设置并删除嵌入式视图控制器并将控件添加到mainviewcontroller中 - 现在一切都按预期工作了!