我想將UIViewController中的現有視圖更改爲新視圖。新視圖包含舊視圖和一個小橫幅視圖。用新的UIView替換self.view顯示黑色視圖
做這個相當簡單的改變留給我一個黑色的視圖。
我的代碼看起來像這樣
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
爲了強制視圖重繪,最後只需調用'[self.view setNeedsDisplay]'。這應該夠了吧。 – George
嘗試,但它不起作用。還試過'[self.view layoutIfNeeded]',但它也不能像我所希望的那樣工作。還有其他建議嗎? – OemerA
在任何地方改變根視圖,但loadView是混亂的,你試圖用這個來實現什麼?有可能更好的方法來做 – wattson12