SideMenu:如何包含在Objective-C项目中?

问题描述

我正在尝试在我的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];

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...