我想将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
答案 0 :(得分:0)
你没有说你在哪里这样做。可能需要保存原始视图的超级视图,然后将新视图添加到该视图的子视图数组中。我打赌这就是问题。