2011-10-25 76 views
1

我有一個ViewController,它創建一個NavigationController並將UIView放入其中。iPhone - 刪除視圖和NavigationController

nvcontrol =[[UINavigationController alloc] initWithRootViewController:menuView]; 
... 
UIView *parent = self.view.superview; 
[parent addSubview:nvcontrol.view]; 

我需要從子視圖控制器中關閉視圖(包括NavController)。

以下片段我試過,只關閉NavController中的視圖,而不是NavController本身。這最終顯示出藍色的頭部,下面有一個白色的空間。

[self.view removeFromSuperview]; 

什麼可以解決這個問題?

回答

2

我還沒有試過,但我覺得這樣的事情應該工作:

[self.navigationController.view removeFromSuperview]; 
+0

差不多,但不是現在。它帶走了頂部的子視圖和導航欄,但屏幕是白色的 – LouwHopley

+0

我的猜測是,它可能與下面的視圖需要重繪或刷新有關。但是,我認爲可能有一個簡單的方法,而不是沿着這條路線走下去。聽起來像你的導航控制器和它的孩子成爲主要的視圖控制器,當你展示他們。爲什麼不使用presentModalViewController:動畫來顯示它們?然後你可以做dismissModalViewController來擺脫它們。谷歌這些方法名稱,你會發現很多的例子。 –

+0

您的第一個(實際)解決方案剛剛開始工作。謝謝:) – LouwHopley

0

@traingle_man你肯定的看法是uinavigation控制器的屬性?

如果我明白你的問題是正確的,這可能會幫助

[nvcontrol.view removeFromSuperview]; 
+0

注意在子視圖控制器中'nvcontrol'不可見(在範圍內)。 – LouwHopley

+0

是的,UINavigationController從UIViewController繼承視圖屬性。 –

相關問題