UILabel没有更新目标c

时间:2016-09-29 16:03:52

标签: ios objective-c uiviewcontroller

我有三个视图控制器A,B,C。在视图控制器B中,我进行服务调用并根据该服务的响应更新UILabel。要求在我们从视图控制器A导航时仅在视图控制器B中显示该标签。如果我们从视图控制器C导航,则隐藏它。

所以我在视图控制器B中有BOOL属性,称为“loadService”。如果我们从prepareForSegue方法中的视图控制器A导航,我将其设置为true。如下 -

 if([segue.identifier isEqualToString:"VCA"])
    {
        ViewControllerA *vca = segue.destinationViewController;
        vca.loadService = true;
    }

在View控制器B中,我的代码如下 -

if (loadService) {

    [self.custProfileMgr getCustomerProfile:^(NSDictionary *custDict) {
        dispatch_async(dispatch_get_main_queue(), ^{
            if (custDict != nil) {
                        self.topView.lblWelcome.text =  val returned from service;

            }
        });
    } failureBlock:^(NSDictionary *failDict) {

    }];
        loadService = false;
    }else{
        self.topView.lblWelcome.text = @"";
        self.topView.lblWelcome.hidden = true;

    }

因此,当我们从VC A导航到VC B时,我能够将服务返回值分配给标签。并且它的工作正常。但是当我们从VC C导航到VC B时,我无法隐藏它。我已经尝试调试应用程序,我看到当我们从VC C导航到VC B时,光标将转到其他条件loadService为false并且它是隐藏文本,但不知何故屏幕不更新,标签仍然存在。我不确定这里有什么问题。请帮忙。提前致谢。

0 个答案:

没有答案