我需要在另一個頂部添加一個新視圖(w/ViewController)。用戶與這個新視圖交互一段時間,然後我想刪除它。在舊版本的Xcode中,我可以將它作爲子視圖添加。我現在得到一個EXC_BAD_ACCESS錯誤。多個ViewControllers(containerView?childView?viewController的實例?)
我不希望添加視圖爲模態。我需要通過添加的視圖來查看原始背景。我讀了很多關於新的自定義containerViews,addChildView,& presentView。我看不出任何這些都是明確的答案。
這裏的舊代碼,工作過 - 在主視圖控制器 操作:在添加視圖
-(IBAction)showWhiteView:(id)sender
{
WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self.view addSubview:whiteView.view];
}
行動將其刪除:
-(IBAction)removeView:(id)sender
{
[self.view removeFromSuperview];
}
感謝您的幫助。
也許一個視覺例子會幫助解釋 - 假設主視圖是一個海洋,動畫波和雲層由MainView控制器控制。用戶點擊一些東西,我想添加一條船(WhiteView)到主視圖。我希望用戶與船進行交互:在這裏點擊帆開啓,點擊錨點滴等等(需要使用WhiteViewController的方法)最終,我想將船從海洋中移除。
感謝蒂姆 - 新的代碼添加:
-(IBAction)showWhiteView:(id)sender
{ WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self addChildViewController:whiteView];
[whiteView didMoveToParentViewController:self];
[self.view addSubview:whiteView.view]; }
和WhiteViewController中刪除:
-(IBAction)removeView:(id)sender
{ [self.view removeFromSuperview];
[self removeFromParentViewController]; }
我期待着在做這更好的任何進一步的建議。 謝謝大家!
您無法刪除基本視圖或父視圖。您可以在父視圖中添加您的子視圖。所以如果你刪除父視圖,你會得到EXE_BAD錯誤 – Hiren 2012-03-27 05:37:18
我將WhiteView作爲子視圖(子視圖)添加到主視圖。 – Scott 2012-03-27 07:57:47