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应用程序模板,并将您的一次性视图呈现为根视图顶部的模式视图。