我正在研究iOS开发,因为我即将开始在几天内使用Web服务创建iOS应用程序。尽管我已经阅读并看过很多教程,文档,论坛和什么,但我的问题仍然没有得到答案,或者答案没有明确说明。我希望有一个人可以帮助我。我只是想知道这个,因为如果每个.xib文件都必须有它自己的类文件,那么这意味着我会有很多文件。每个.xib文件都必须有自己的.h和.m文件吗?
回答
答案是否定的,但是当你使用每个视图控制器的nib文件(而不是一个nib文件集合的故事板)时,你通常会这样做。
笔尖文件归档对象图
记住这一点。界面构建器以及它创建的nib文件用于创建对象图。实际上你可以将任意对象放在一个笔尖中,并在运行时加载它们。当我第一次开始时,这是最令人困惑的话题之一。
xib文件(我仍然称它们为nibs)只是对可以可视化构建的对象图的描述。基本上,您在笔尖中设置的每个对象都会被存档,并且在运行时会被取消存档。您在界面构建器中选择的设置也被归档,相当于在代码中调用方法。
例如,为笔尖中的UIView选择背景颜色与在代码中发送setBackgroundColor:相同。调整视图大小就像发送setFrame一样:等等。这些都是在构建时存档的,并在运行时解除存档。
nib文件保留对您子类的对象的引用。
如果您有自定义视图,您将拥有该子项(.h和.m)并将其设置为笔尖。除非你不希望观点做任何事情。
通常,当你无论如何创建榫文件,在iOS上,您选择在得到与它一个视图控制器子类的.h和.m文件。这最终被连接到笔尖中的文件所有者代理对象。以UIView为例,当你为一个视图创建一个子类时,在界面构建器中设置它会给你一个对该代码的引用。然后,您可以在笔尖中设置其大小,背景颜色,绘图选项等以及实际绘制的代码。
下面是来自苹果约碎粒的详细文章:平均每个职位
你好,先生。感谢那非常详细的答案。既然你好像知道这件事,先生,我不妨问另外一个问题。一个nib文件可以有多个视图吗?例如,一个带有.h和.m的loginViewController,它有它的第一个视图,用户登录的地方,以及用户将被重定向的其他视图,这取决于他或她的登录方式,比如,欢迎和登录错误观点。是否有可能在一个nib文件中有三个视图ala storyboard,全部由loginViewController拥有? – christianleroy
另一个问题,在一个简单的Web服务程序中,5种类型的用户登录,从Web服务中获取数据,这是更好的方法?故事板或单一视图程序? – christianleroy
是一个nib文件可以有多个视图,但我从来没有做过一个设置(或需要)有一个视图控制器的两个视图,除了使用视图控制器遏制API(我认为)与iOS一起5.而不是错误消息的视图,你可能会使用UIAlertView。在iOS 7中,他们添加了将自己的自定义视图添加到UIAlertView的功能,但是我怀疑您需要这样做才能显示错误消息。您应该停止将您的工作视为.h和.m文件,而是开始思考您正在使用哪些对象以及如何编写它们。 –
XIB文件是内容的存档,可以由视图控制器和视图组成。一般来说,'内置'视图控制器直到你将它们子类化都没有多大用处,所以如果XIB包含视图控制器,那么你通常会有相关的.h/.m文件。但是XIB只能包含视图。在这种情况下,您的可能没有有相关联的文件(但您很有可能应该有一个视图子类,因为您的视图可能想要在其某些子视图中显示出口)。
Xib文件可以包含任何类型的序列化资源 - 数组,字典,不仅是视图和视图控制器。所以一个xib文件不能有* .h * .m文件
- 1. * .xib,* .m和* .h文件如何关联?
- 2. 每个类都必须拥有自己的OnClickListener吗?
- 3. 每个活动都必须有自己的模型吗?
- 4. 带有分隔的.h,.m和xib文件的UIView
- 5. PHP/Smarty - 每个文件都有它自己的语言文件
- 6. 每个派生表都必须有自己的别名?
- 7. MySQL:每个派生表都必须有自己的别名
- 8. 每个派生表都必须有它自己的别名Error?
- 9. 合并.h和.m文件
- 10. 每个可执行文件都必须有一个ELF头文件?
- 11. 每个屏幕分辨率都必须有一个壁纸文件吗?
- 12. 如何从.h和.m文件创建.XIB?
- 13. 每个商店都有自己的媒体文件夹?
- 14. Zend中的每个表都必须映射到它自己的类吗?
- 15. 每个人都必须同意SO_REUSEADDR吗?
- 16. Dynamics CRM 2011 - 每个与不同实体相关的插件都必须拥有自己的程序集吗?
- 17. 应该每个组件都有自己的mapDispatchToProps吗?
- 18. 必须将所有java类文件都归属于java包吗?
- 19. 每个git commit都必须没有错误和完美吗?
- 20. 一个.h多个.m文件
- 21. iOS按钮文本本地化 - 你必须做整个xib文件吗?
- 22. 为什么CPP文件名必须与H文件名相符?
- 23. Xcode SVN - 你真的必须导入每个新文件吗?
- 24. MySql +实体框架=每个派生表都必须具有自己的别名
- 25. mySQL错误:#1248 - 每个派生表都必须有自己的别名
- 26. SQL错误:每个派生表都必须有自己的别名
- 27. 错误1248(42000):每个派生表都必须有自己的别名
- 28. 获取错误:每个派生表都必须具有自己的别名
- 29. MySQL JOIN错误:每个派生表都必须有自己的别名
- 30. VBA导入文本文件,其中每个单词都有自己的行
一个问题。 – rmaddy