したがって、質問は次のようになります。
UIView(name: Menu) と UIViewController(name: MainController) の 2 つのクラスをサブクラス化します。メニューでは、xib ファイルを使用してレイアウトを作成しました。MainController では、このように Menu をサブビューとして追加し、Menu のプロトコルに準拠させました。
SliderMenu *sliderMenu = [[[NSBundle mainBundle] loadNibNamed:@"SliderMenu" owner:self options:nil] objectAtIndex:0];
sliderMenu.datasource = self;
sliderMenu.delegate = self;
[self.view addSubview:sliderMenu];
レイアウトは完璧に機能し、問題はありません。
問題は DataSource にあります。awakeFromNibでデータソース メソッドを呼び出します
- (void)awakeFromNib {
// Alloc data
self.data = [[NSArray alloc] initWithArray:[self.datasource arrayOfData]];
}
そして、それは呼び出されることさえありません。試行錯誤した後、 awakeFromNibsliderMenu.datasource = self;
の後に実行されることがわかりました。これが、MainController のデータソース メソッドが呼び出されない理由です。
質問: どうすればこの問題を解決できますか?