Objective c 从另一个类更新UI

Objective c 从另一个类更新UI,objective-c,encapsulation,Objective C,Encapsulation,我有两个班(A班和B班)。类B下载并处理一些数据,而类A显示progressView 我需要类A中的progressView在被类B调用时进行更新 目前,我在B.m.班有以下课程: ClassA* classA= [[ClassA alloc] init]; [classA didStartLoadMethod]; 在A.h类中: - (void)didStartLoadMethod; A.m类内部 - (void)didStartLoadMethod; { _progressVi

我有两个班(A班和B班)。类B下载并处理一些数据,而类A显示progressView

我需要类A中的progressView在被类B调用时进行更新

目前,我在B.m.班有以下课程:

ClassA* classA= [[ClassA alloc] init];

[classA didStartLoadMethod];
在A.h类中:

- (void)didStartLoadMethod;
A.m类内部

- (void)didStartLoadMethod;
{
    _progressView.progress = 0;
}

但是除非从类A调用didStartLoadMethod,否则进度视图不会更新

还有其他的方法吗?我做错了吗

非常感谢您的任何帮助和/或任何其他解决方案。
谢谢

因为您的两个控制器之间存在父子关系,所以您可以使用self.parentViewController从ClassB控制器访问ClassA控制器(此代码在ClassB中)


在玩了一段时间后,我决定使用
NSNotification

“除非从类a调用didStartLoadMethod,否则进度视图不会更新”是不真实的。更有可能的是,类B指向类A的指针无效。谷歌“iOS委托模式”,特别是NSURLConnectionLegate。这里的关键是你的陈述,“我有两个类(类A和类B)”--你已经有了这两个控制器,所以你不应该用alloc init创建一个新的类A实例。您需要获得一个指向您已经拥有的实例的指针。你如何做到这一点取决于你的应用程序结构。我该如何做到@没有更多的信息,rdelmarI无法告诉你。这就是为什么我说这取决于你的应用程序结构。这两个控制器是如何创建的?如何从一个视图切换到另一个视图?类A是一个包含ContainerView的UIView。ContainerView链接到类B@rdelmarIt,但该类中没有运行该方法A@JohannBurgess尝试记录classA(在第一行之后),看看它给出了什么null@JohannBurgess,我不知道如果你有你所说的控制器层次结构,那会是什么样子。如果你能把你的故事板的图片贴在我能看到的地方,我可能会说为什么这不起作用。
ClassA* classA= (ClassA *)self.parentViewController;

[classA didStartLoadMethod];