用新的UIView替换self.view显示黑色视图

时间:2012-09-15 18:15:16

标签: ios uiview uiviewcontroller

我想将UIViewController中的现有视图更改为新视图。新视图包含旧视图和一个小横幅视图。

做这个相当简单的改变让我看到了黑色视图。

我的代码看起来像这样

UIView *existingView = self.view;
UIView *newView = [[UIView alloc] initWithFrame:existingView.frame];
UIView *bannerView = [[UIView alloc] initWithFrame:CGRectMake(0, (self.view.frame.size.height - 50), 320, 50)];

CGRect existingViewFrame = existingView.frame;
existingViewFrame.size.height -= 50;
existingView.frame = existingViewFrame;

[newView addSubview:existingView];
[newView addSubview:bannerView];

self.view = newView;

然而,当切换Tabs并返回到改变视图的视图时,就像我想要的那样。我想我需要设置一个标志或者某些东西告诉控制器重绘它的(新)视图。

修改

我为这个问题写了一个简单的例子。你可以在GitHub上找到它:https://github.com/Oemera/ChangeView

1 个答案:

答案 0 :(得分:0)

你没有说你在哪里这样做。可能需要保存原始视图的超级视图,然后将新视图添加到该视图的子视图数组中。我打赌这就是问题。