2

アプリで SASlideMenu コンポーネントを使用しており、カスタム セグエを使用して新しい UIBarButtonItem を宛先ビュー コントローラーに追加しています。コンポーネントを最初からではなく、アプリの途中で使用しているという点で、デフォルトのユースケースとは少し異なります。コードは次のとおりです。

SASlideMenuViewController* source = self.sourceViewController;
SASlideMenuRootViewController* rootController = source.rootController;
UIViewController* destination = self.destinationViewController;

UIButton* menuButton = [[UIButton alloc] init];
[rootController.leftMenu.slideMenuDataSource configureMenuButton:menuButton];
[menuButton addTarget:rootController action:@selector(doSlideToSide) forControlEvents:UIControlEventTouchUpInside];

UINavigationItem* navigationItem = destination.navigationItem;
navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:menuButton];

しかし、View Controller の UINavigationBar にはボタンが追加されていません。

SASlideMenu ( https://github.com/stefanoa/SASlideMenu ) のデモ アプリには、UIViewController の前に UINavigationController に向かうセグエがあり、元のコードは次のとおりです。

SASlideMenuViewController* source = self.sourceViewController;
SASlideMenuRootViewController* rootController = source.rootController;
UINavigationController* destination = self.destinationViewController;

UIButton* menuButton = [[UIButton alloc] init];
[rootController.leftMenu.slideMenuDataSource configureMenuButton:menuButton];
[menuButton addTarget:rootController action:@selector(doSlideToSide) forControlEvents:UIControlEventTouchUpInside];

UINavigationItem* navigationItem = destination.navigationBar.topItem;
navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:menuButton];

私のアプリでは、別のUIViewControllerからのプッシュセグエを介してルートビューコントローラーにアクセスするため、セグエはUIViewControllerに直接行きます。なぜこれが機能しないのか、誰にもわかりますか?

4

0 に答える 0