MMDrawerController入门

时间:2014-01-13 21:12:15

标签: ios objective-c

我正试图让MMDrawerController工作,我遇到了麻烦。

以下是我的故事板中应用程序的结构:

enter image description here

以下是我尝试从根视图控制器中初始化它的方法:

//LCViewController.m

#import "LCViewController.h"
#import "MMDrawerController.h"

@interface LCViewController ()
  @property (nonatomic,strong) MMDrawerController * drawerController;
@end

@implementation LCViewController

- (void)viewDidLoad
{
  [super viewDidLoad];

  self.drawerController = [[MMDrawerController alloc]
                           initWithCenterViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"centerNav"]
                           leftDrawerViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"menu"]
                           rightDrawerViewController:nil];
}

...

@end

当我构建我的应用程序时,我看到的只是我的根视图控制器。我是否应该采取其他措施来实现抽屉功能?

我创建了一个演示项目来展示我是如何设置我的应用程序的。你可以download the Xcode workspace here。在此先感谢您的帮助!

我正在使用Xcode 5和iOS 7

1 个答案:

答案 0 :(得分:7)

编辑:抱歉,我最初误解了您的应用结构。 MMDrawerController应该是应用程序的根视图控制器。您应该将此代码从viewDidLoad移动到application:didFinishLaunchingWithOptions:。将MMDrawerController属性添加到您的app委托,使用适当的视图初始化抽屉控制器,并将抽屉控制器设置为UIWindow上的rootViewController。这样做,同时设置手势模式,如下所述,抽屉应该工作。

要获得基本的打开/关闭手势,请在抽屉控制器上设置此属性:

self.drawerController.openDrawerGestureModeMask = MMOpenDrawerGestureModeAll;
self.drawerController.closeDrawerGestureModeMask = MMCloseDrawerGestureModeAll;

这些属性默认为MMOpenDrawerGestureModeNone,这就是您无法进行任何滑动的原因。如果需要,您可以查看MMOpenDrawerGestureMode和MMCloseDrawerGestureMode位掩码以获得更精细的粒度设置。

您还可以通过调用toggleDrawerSide: animated: completion:创建用于切换抽屉的UI控件。