0

嗨 iOS 开发人员,我是一个新手,正在开发一个具有 5 个选项卡视图的项目,在第一个和第二个选项卡上,我使用 Michael Frederick 在他的 GitHub 页面项目链接 上的示例代码中的容器视图滑出菜单: https://github。 com/mikefrederick/MFSideMenu。他正在使用 nib (.xib) 文件,尽管我正在使用 Storyboard 来实现相同的目的,并且对定义容器和子视图感到震惊。可以请一些建议如何修改以下代码以适应我的故事板。

AppDelegate.m 中的原始代码是

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

UITabBarController *tabBarController = [[UITabBarController alloc] init];

[tabBarController setViewControllers:[NSArray arrayWithObjects:[self navigationController],
                                      [self navigationController], nil]];

SideMenuViewController *leftSideMenuController = [[SideMenuViewController alloc] init];
SideMenuViewController *rightSideMenuController = [[SideMenuViewController alloc] init];

MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
                                                    containerWithCenterViewController:tabBarController
                                                 leftMenuViewController:leftSideMenuController
                                                rightMenuViewController:rightSideMenuController];

self.window.rootViewController = container;
[self.window makeKeyAndVisible];

return YES;
}

@end
  1. 如何修改代码以适应容器父视图和子视图?
  2. 我应该在哪里实例化第二个选项卡视图的父项和子项的代码?在 AppDelegate 或视图控制器中?

如果需要任何其他详细信息,请发表评论。任何帮助将不胜感激。提前致谢。

4

2 回答 2

4

我不知道你是否还需要这个,但我今天也遇到了完全相同的问题。你需要做的是:

  • 在您的应用程序委托上删除这两种方法

把它放在你的应用程序委托中:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD" bundle:[NSBundle        mainBundle]];

MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController;

UIViewController *leftSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:@"THE_IDENTITY_OF_YOUR_SIDEMENU"];

UITabBarController *centerViewController = [storyboard instantiateViewControllerWithIdentifier:@"IDENTITY_OF_YOUR_TABBARCONTROLLER"];

[container setCenterViewController:centerViewController];
[container setLeftMenuViewController:leftSideMenuViewController]; //for the right Side, its the same way...
[container setPanMode:MFSideMenuPanModeNone]; //remove this line, if you need the pan mode
return YES;

在您的 Storyboard 中,您必须将 ViewController 作为“MFSideMenuContainerViewController”的子类。在属性检查器中将此视图标记为“初始视图控制器”。现在使用新初始视图控制器中的 Segue 并让它“推送”到您的 TabBarController。为避免警告重命名 Segue。

完成此操作后,您可以为每个 View 添加一个 UIBarButtonItem,您喜欢添加 SideMenu。在这个 UIBarButtomItem 的 Action 方法中你只需要这样做:

    [self.menuContainerViewController toggleLeftSideMenuCompletion:^{}];

最后确保您有一个 UIViewController 或一个 UITableViewController,即您的“SideMenu”并设置正确的 Storyboard ID。

如果您仍然需要帮助,请对此发表评论...对不起我的英语:)

于 2013-10-23T17:02:17.490 回答
0

您可以使用https://github.com/ozcanakbulut/VoovilSideMenu。嵌入 tabBarController 很容易。它使用 Storyboard 和 Arc。

于 2013-10-24T01:17:56.650 回答