0

したがって、質問は次のようになります。

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 のデータソース メソッドが呼び出されない理由です。

質問: どうすればこの問題を解決できますか?

4

1 に答える 1