我重寫一個UIViewController內的loadView方法如下:獲取的UIViewController重新加載不同的UIView編程
-(void)loadView
{
NSLog(@"HPSFormController loadView starting");
HPSFormView* viewForThisController = [ [ HPSFormView alloc ] initWithFrame:_frame ] ;
self.view = viewForThisController;
}
當某個按鈕被視圖內按下則相同的UIViewController再次獲得控制,並在該點我希望完全改變控制器顯示的視圖。如下:
-(void)buttonTapped
{
ABCFormView* newview = [ [ ABCFormView alloc ] initWithFrame:_frame ] ;
self.view = newview;
}
然而,buttonTapped方法不加載所述第二視圖。而是顯示一個完全空白的視圖。
如何獲取按下按鈕時視圖控制器重新加載一個完全不同的看法?
您應該使用導航控制器,並使用正確的選項集推送您創建的相同uiviewController子類的新實例。 –
這不是一個好選擇,因爲視圖控制器包含很多我需要複製的模型信息,加上我切換視圖很多,所以我會一直彈出並推動控制器。有沒有辦法簡單地改變現有控制器管理的UIView? – whatdoesitallmean
_frame在loadView和buttonTapped之間保持一致嗎? 'self.view'通常由UIKit編輯以考慮各種因素。我建議實際上不要更改'self.view',而只是添加和刪除視圖作爲'self.view'的子視圖。 –