假设您实现了一个自定义表格视图和一个自定义视图控制器(它主要模仿UITableViewControllers 的行为,但是当以编程方式初始化时,...
@interface Foo : MyCustomTableViewController ...
Foo *foo = [[Foo alloc] init];
...foo.view是一种类,MyCustomTableView而不是UITableView:
// MyCustomTableView.h
@protocol MyTableViewDelegate <NSObject, UITableViewDelegate>
// ...
@end
@protocol MyTableViewDataSource <NSObject, UITableViewDataSource>
// ...
@end
@interface MyCustomTableView : UITableView
// ...
@end
// MyCustomTableViewController.h
@interface MyCustomTableViewController : UIViewController
// ...
@end
您应该如何init以正确的顺序/方式实现/覆盖方法,以便您可以通过以编程方式进行子类化或通过在 Interface Builder 中将自定义类类型设置为任何自定义 nib 文件来创建和使用MyCustomTableView这两种方法的实例?MyCustomTableViewControllerMyCustomTableView
需要注意的是,这正是目前UITableView(主要是 UIKit)的工作方式:开发人员可以通过编程方式或从 nib 创建和使用,无论是File owner主view视图还是更复杂层次结构中的某个子视图,只需分配数据源或委托,你很高兴......
到目前为止,如果您子类化,我设法让它工作,我将在MyCustomTableViewController其中创建一个实例MyCustomTableView并将其分配给方法;但无法弄清楚, , , , 或其他任何操作方式。我迷失在生命周期链中,每次都以黑色视图/屏幕结束。self.viewloadViewinitWithNibName:bundle:initWithCoder:awakeFromNibawakeAfterUsingCoder:
谢谢。