重新加载后,按代码将子视图添加到视图中消失

时间:2016-05-17 08:44:34

标签: ios objective-c uiview

我试图通过代码将UI组件添加到我的视图中并且它运行良好,直到我返回到视图(通过弹出视图功能)我发现通过接口构建器添加的组件仍然存在而组件添加代码删除! (我试图在VC中打印子视图,但它们不存在)。

我错过了什么?

  

SharedDataObject.m

@property (retain, nonatomic) UIImageView *brandLogoImageView;
@property (retain, nonatomic) UILabel *brandNameLabel;
  

ViewController.m

- (void)initUI {
    if ([[SharedDataObject shared]noLogo]) {
        [[[self view] viewWithTag:13]addSubview:[[SharedDataObject shared] brandNameLabel]];
    }
    else
    {
        [[[self view] viewWithTag:13]addSubview:[[SharedDataObject shared] brandLogoImageView]];
    }

    [_brandMessageLabel setText:[[[SharedDataObject shared] loginObject] promotion]];
}

- (void)viewDidLoad {
    [self initUI];
}

2 个答案:

答案 0 :(得分:2)

我猜你正在使用这个观点 [[SharedDataObject shared] brandLogoImageView] 在你推动的viewcontroller中。

UIKit框架只允许每个视图使用一个superview。因此,您需要重新添加或使用其他imageview在两个viewcontrollers中显示图像。

答案 1 :(得分:0)

尝试在viewDidAppear / viewWillAppear方法中添加视图组件。表示在viewcontroller的viewDidApper方法中调用initUI方法。