我正在试验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。我是否还需要另一个中间视图控制器,它将具有另一个ApplicationDelegate对象,我将其连接到UIWindow对象和UINavigationController?然后将与IB的Navigation Controller对象一起提供的View Controller设置为我的RootVC类?
对于冗长而感到抱歉。我很难解释。因为IB中的某些对象是代理,而有些是“真实的”,所以在尝试“新”事物时,有时会混淆(对我来说)需要的东西,其中&什么时候。基本上我想知道设置一个视图导致另一个视图无法回到第一个视图。第二种观点基本上成为在许多方向产生的“主要”根源......
答案 0 :(得分:0)
我建议使用基于导航的iPhone应用程序模板,并在根视图之上将您的一次性视图显示为模态视图。
答案 1 :(得分:0)
我能够通过在MainWindow笔尖中添加对viewController的引用来解决这个问题,然后在我添加了navigationController& amp;之后自动释放viewController。 rootVC到UIWindow。在此过程中了解了另外一两件关于IB的事情。相当强大......