0

我正在嘗試使用ViewControllers & Interface Builder中的NavigationControllers試圖更好地理解什麼與什麼以及爲什麼相關......我正在困惑着我的一個場景。希望有人可以讓我直...導航和視圖控制器問題

說我開始你的典型的iPhone模板基於視圖的應用程序,我顯示視圖控制器(viewController)處理的視圖。然後,在某個事件發生後,我想用「典型的」基於導航的視圖(rootVC)替換該視圖。我想盡可能在​​IB中創建。我的問題與如何顯示rootVC並刪除以前的viewController的所有痕跡有關,因爲用戶將永遠不需要返回以及在IB中的navController中何處/如何連線。目前,當它的時間來顯示rootVC我這樣做在我的viewController:

RootVC *rvc = [[RootVC alloc] initWithNibName:@"RootVC" bundle:nil]; 
[rvc.view setFrame:[[UIScreen mainScreen] applicationFrame]]; 

ViewTestAppDelegate *appDelegate = (ViewTestAppDelegate *)[[UIApplication sharedApplication] delegate]; 
self.rootVC = rvc; 
[rvc release]; 
[appDelegate.viewController.view removeFromSuperview]; 
[appDelegate.window addSubview:rootVC.view]; 
[appDelegate.viewController release]; 

rootVC除了顯示的viewController仍然有1保留計數?!?

此外,應該在哪裏實例化rootVC的navigationController?從基於視圖的模板開始,MainWindow.xib包含一個viewController對象(它有自己的ViewController.xib),一個appDelegate和一個UIWindow。我的RootVC.xib包含一個UITableView。我是否還需要另一箇中間視圖控制器,該控制器將具有另一個連接到UIWindow對象和UINavigationController的ApplicationDelegate對象?與IB的導航控制器對象一起的視圖控制器將被設置爲我的RootVC類?

對不起,冗長。我很難解釋。因爲IB中的一些對象是代理服務器,有些是「真實」的,所以在嘗試「新」事情時,有時會令人困惑(對我來說)什麼時候需要什麼,&什麼時候。基本上我想知道要設置一個導向另一個視圖的方式,而不能回到第一個視圖。第二視圖基本上成爲在許多方向產生的「主」根...

+0

我個人更喜歡不使用IB for iPhone Dev,因爲製作iPhone界面非常容易。 IB更適合製作複雜的用戶界面(即在OS X上,而不是在iPhone上)。 – mk12 2009-11-20 22:45:39

+0

@ Mk12:不要害怕Interface Builder:http://iphonedevelopment.blogspot.com/2009/10/dont-fear-interface-builder.html – 2009-11-20 22:53:27

回答

0

我能夠通過在MainWindow nib中添加對viewController的引用,然後在向UIWindow添加navigationController & rootVC之後自動釋放viewController。一路上學到了另外一兩件關於IB的知識。很強大...

0

我會建議使用基於導航的iPhone應用程序模板,並將您的一次性視圖呈現爲根視圖頂部的模式視圖。