问题描述
我正在尝试在我的Objective-C代码中使用项目SideMenu(https://github.com/jonkykong/SideMenu)(我看到了@ objc / @ objcmembers语法,所以我猜应该可以),但我没有使用情节提要。 在这种情况下可以使用控制器吗?如果是这样,怎么办? 看来我正确导入了模块,因为我可以看到具有自动补全功能的类,但是如果尝试实例化SideMenuNavigationController,则无法访问initWithRootViewController方法。 有谁能指出我正确的方向? 谢谢
解决方法
不确定是否已经解决了这个问题,但是在Objective-C中,该类公开为UISideMenuNavigationController
。因此,您最终得到:
UISideMenuNavigationController *menu = [[UISideMenuNavigationController alloc] initWithRootViewController:controller];
,
这是我采用的解决方案,以防有人遇到同样的问题。 在您的 pod 文件中,使用 SideMenu 项目的这个分支:
pod 'SideMenu',:git => 'https://github.com/DanielFontes/SideMenu.git',:commit => '52361cfee8cd89698cc131729d9f337d8fafcffe';
然后,您可以像平常使用 Objective-C 类一样实例化 SideMenu;这是我在项目中配置它的方式:
YourViewController *_view = [[YourViewController alloc] initWithNibName:@"NibName" bundle:nil];
SideMenuSettings *_settings = [[SideMenuSettings alloc] init];
[_settings setPresentationStyle:SideMenuPresentationStyle.menuSlideIn];
SideMenuPresentationStyle *_selectedPresentationStyle = _settings.presentationStyle;
_selectedPresentationStyle.presentingScaleFactor = 0.9;
float width = (self.isiPad)?570:300;
[_settings setMenuWidth:width];
SideMenuNavigationController *_sideMenu = [[SideMenuNavigationController alloc] initWithRootViewController:_view settings:_settings];
[_sideMenu setSideMenuDelegate:self];
[_sideMenu setNavigationBarHidden:YES];
[_sideMenu setLeftSide:YES];
[_sideMenu setStatusBarEndAlpha:0];
[[SideMenuManager defaultManager] setLeftMenuNavigationController:_sideMenu];
[[SideMenuManager defaultManager] addPanGestureToPresentToView:_firstViewController.navigationController.navigationBar];
[[SideMenuManager defaultManager] addScreenEdgePanGesturesToPresentToView:_firstViewController.view];