我制作了一个只包含 IB 中的 UITableView 的 XIB。引起我注意的是,可以继承 UITableViewController 并完全取消 xib。
我的问题是,你是怎么做到的?
到目前为止,我唯一改变的是我的 .h 是...
@interface MyView : UITableViewController
并删除了我的 XIB。显然我得到一个错误,指出
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'Could not load NIB in bundle: 'NSBundle (loaded)' with <path>
name 'MyView''
所以我的问题是,为了正确完成这个子类化,还剩下什么?
有两种方法可以在 iOS 中设置 View Controller 。
-initWithNibName:bundle:
实例化 View Controller ,将 .xib 文件的名称作为第一个参数传递,并且(除非您正在执行一些高级操作stuff) nil
作为第二个参数。操作系统将查找您的 .xib 文件并将其反序列化为一堆对象并将它们附加到您的 View Controller 。然后操作系统调用您的 View Controller 子类的 -viewDidLoad:
方法,您在此完成设置。 -init
实例化 View Controller ,或者对于 TableView Controller ,initWithStyle:
。操作系统然后调用您的子类的 -loadView
方法,您可以在其中手动实例化 View 层次结构。 听起来你只需要用 -initWithStyle:
而不是 -initWithNibName:bundle:
来实例化它。
关于iphone - 子类化 UITableView 所以它不需要 xib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14613998/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |