2011-11-01 37 views
0

我想了解ViewControllers的基本概念。为了我的目的,我需要切换XIB(不是模态),但完全是为了节省内存。基本上我想调用另一个XIB并使用它的功能,然后通过按下该XIB上的按钮,加载另一个XIB。如何将RootViewController更改为另一个XIB?

-(IBAction)GoToPage:(id)sender 
{ 
    GoToPage *gotopage = [[[GoToPage alloc] init] autorelease]; 
    [self presentModalViewController:gotopage animated:YES]; 
} 

我知道上面的代码只是模态地添加子视图。有人能带领我如何实现这一目标的正确方向吗?

这是一本iPad的书。

回答

2

我建议您阅读Apple的View Controller Programming Guide for iOS,以便深入了解视图控制器的用途。

作为一个快速概述,视图控制器通常负责管理手机大小的设备上的单个“屏幕”内容或iPad上屏幕的一部分,因为可以在iPad上使用多个视图控制器,例如UISplitViewController。如果您想在iPad上的全屏视图控制器之间进行动画制作,则可以使用UINavigationController,它可以管理视图控制器的层次结构。您没有提及GoToPage从哪里继承,无论是UIView还是UIViewController。在你的情况下,它应该是UIViewController的一个子类。

使用UINavigationController将允许您管理多个UIViewController子类,同时保持层次结构良好,以便用户可以导航回到先前的视图控制器。您可以使用-pushViewController:animated:将视图控制器子类的新实例推送到导航控制器的视图控制器堆栈上,在大多数情况下,导航回自动由UINavigationController自动处理。

XIB简单地封装了用户界面,而不是任何用户定义的代码。 XIB的文件所有者代理应设置为UIViewController的子类,它允许您通过使用子类的IBOutletIBAction属性来弥合XIB上的界面元素与UIViewController子类中的代码之间的差距。

最后,如果您只是定位iOS 5.0,我建议您查看UIPageViewController,它管理多个视图控制器,并允许您使用类似iBooks的翻页动画在它们之间切换。首先并且最重要的是,通读视图控制器编程指南1

相关问题