【发布时间】: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