你好iOS开发人员,我是一个新手开发一个带有5个选项卡视图的项目,在第一个和第二个选项卡上,我使用Michael Frederick在他的GitHub页面Project Link:上的示例代码中的容器视图滑出菜单https://github.com/mikefrederick/MFSideMenu { {3}}。他正在使用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
如果需要任何其他详细信息,请发表评论。任何帮助将不胜感激。在此先感谢。
答案 0 :(得分: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 Method中你只需要这样做:
[self.menuContainerViewController toggleLeftSideMenuCompletion:^{}];
最后确保你有一个UIViewController或一个UITableViewController,即你的“SideMenu”并设置正确的故事板ID。
如果您仍然需要帮助,请评论此... 抱歉我的英语:)
答案 1 :(得分:0)
您可以使用https://github.com/ozcanakbulut/VoovilSideMenu。它很容易嵌入tabBarController中。它使用Storyboard和Arc。