我在我的应用程序中使用 SASlideMenu 组件,并使用自定义 segue 将新的 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];
但是视图控制器中的 UINavigationBar 没有添加任何按钮。
来自 SASlideMenu ( https://github.com/stefanoa/SASlideMenu ) 的演示应用程序在 UIViewController 之前将 segue 转到 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 的推送 segue 访问的,因此 segue 直接进入 UIViewController。谁能明白为什么这不起作用?