カスタムテーブルビューとカスタムビューコントローラーを実装するとします(これは主にUITableViewController
sの動作を模倣しますが、プログラムで初期化すると...
@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
プログラムでサブクラス化するか、Interface Builderでカスタムクラスタイプをに設定してカスタムnibファイルから両方init
のインスタンスを作成して使用できるように、メソッドを正しい順序/方法でどのように実装/オーバーライドする必要がありますか?MyCustomTableView
MyCustomTableViewController
MyCustomTableView
これがまさにUITableView
現在の方法(主にUIKit)であることに注意することが重要です。開発者は、プログラムで、またはペン先から作成することによって、File owner
メインview
またはより複雑な階層のサブビューに関係なく、作成して使用できます。データソースまたはデリゲートを割り当てれば、準備は完了です...
これまでのところ、サブクラスMyCustomTableViewController
を作成すると、これを機能させることができました。ここで、のインスタンスを作成し、メソッドMyCustomTableView
に割り当てます。しかし、、、、、、または他の何かがどのように動作するかを理解できませんでした。私はライフサイクルチェーンで迷子になり、毎回黒いビュー/画面になってしまいます。self.view
loadView
initWithNibName:bundle:
initWithCoder:
awakeFromNib
awakeAfterUsingCoder:
ありがとう。