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;
ただし、タブを切り替えて変更したビューに戻ると、希望どおりにビューが表示されます。コントローラーに(新しい)ビューを再描画するように指示するには、フラグまたは何かを設定する必要があると思います。
編集
この問題の簡単な例を書きました。GitHub で見つけることができます: https://github.com/Oemera/ChangeView