大多数时候,xib的所有者是UIViewController。
我有点使用它。
我仍然感到困惑。
我想,viewDidLoad和viewWillAppear是主要的卖点。
是吗?使用UIViewController作为XIB的所有者有什么好处?
答案 0 :(得分:2)
UIViewController对象是视图在iOS窗口中显示的主要方式。
Apple将此作为一个基础的基础构建块(以及许多其他构建块),您可以使用它来快速构建并将您的应用程序推向市场。
当您继承UIViewController时,您可以进行许多漂亮的自定义,这些自定义可以收集并最终变成(希望体面的)产品。当你子类化UIViewController时,你需要将XIB文件的“owner”设置为该子类视图控制器(例如ThioViewController),这样app就可以知道实例化了什么对象(和用户界面)。
希望这不是解释的超级抽象。
答案 1 :(得分:2)
首先,花点时间了解MVC http://en.wikipedia.org/wiki/Model - 视图控制器
这是Objective-C(不仅仅是)开发的里程碑。
UIViewController是所有视图的控制器(在此viewController中)。它为您提供了在屏幕上创建视图,操纵视图,处理视图操作等的起点。
您可以通过编程方式创建UIViewController。
XIB代表屏幕,您可以在Interface Builder中轻松操作,以创建和自定义应用程序屏幕或其中一个屏幕的设计。
由于XIB代表屏幕(视图),它必须是控制器,它根据您的需要控制屏幕上的所有视图 - UIViewController或UINavigationController或其他类型的控制器。
大部分时间你都会将UIViewController子类化并用它来实现你的目标。
UIViewController有几个直接从它继承的子类(UINavigationController,UITabBarController)。
另外UIViewController还有几种方法(其中一些)
-(void)viewDidLoad
在视图控制器将其视图层次结构加载到内存后调用此方法。无论视图层次结构是从nib文件加载还是在loadView方法中以编程方式创建,都会调用此方法。您通常会覆盖此方法以对从nib文件加载的视图执行其他初始化。
和
-(void)viewWillAppear:(BOOL)animated
参数
动画 如果是,则使用动画将视图添加到窗口中。 讨论 在将接收者的视图添加到视图层次结构之前以及在配置任何动画以显示视图之前调用此方法。您可以覆盖此方法以执行与显示视图相关联的自定义任务。例如,您可以使用此方法更改状态栏的方向或样式,以与所显示视图的方向或样式进行协调。如果重写此方法,则必须在实现中的某个时刻调用super。
请查看Apple文档以获取更多信息