0

嗨,我已按照此 github 页面添加 MFSideMenu 并显示以下错误。

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_MFSideMenuContainerViewController", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是我的 AppDelegate

- (ViewController *)demoController {
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
    ViewController *main = (ViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"home"];

    return  main;
}

- (UINavigationController *)navigationController {
    return [[UINavigationController alloc]
            initWithRootViewController:[self demoController]];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    leftMenuController *leftMenuViewController = [[leftMenuController alloc] init];

    MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
                                                    containerWithCenterViewController:[self navigationController]
                                                    leftMenuViewController:leftMenuViewController
                                                    rightMenuViewController:nil];
    self.window.rootViewController = container;
    [self.window makeKeyAndVisible];
    return YES;
}

在此处输入图像描述

4

2 回答 2

0

通常,当 BoxView 的代码没有正确编译到您的目标中时,就会发生这种情况。

在此处输入图像描述

您需要确保您正在构建的目标已为您的MFSideMenuContainerViewController.m实现文件选中了相应的框。

“清洁和建造”也永远不会受到伤害。

于 2016-08-22T10:25:51.127 回答
0

在 AppDelegate.m 中使用此代码,它在情节提要中对我有用。

- (ViewController *)demoController {
    return [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
}

- (UINavigationController *)navigationController {
    return [[UINavigationController alloc]
            initWithRootViewController:[self demoController]];
}


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
    MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController;
    UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"navigationController"];
    UIViewController *leftSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:@"leftSideMenuViewController"];
     UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"second" bundle:[NSBundle mainBundle]];
    UIViewController *left = [storyboard1 instantiateViewControllerWithIdentifier:@"rightSideMenuViewController"];

    [container setLeftMenuViewController:leftSideMenuViewController];
    [container setLeftMenuViewController:left];
    [container setCenterViewController:navigationController];

    // Override point for customization after application launch.
    return YES;
}

还在故事板中获取一个新的视图控制器并将其标记为初始视图控制器,并将其类名和故事板 ID 指定为 MFSideMenuContainerViewController。

于 2016-08-22T10:18:15.690 回答