各位 iOS 开发人员,我是一名新手,正在开发一个包含 5 个选项卡 View 的项目,在第一个和第二个选项卡上,我使用 Michael Frederick 在他的 GitHub 页面上的示例代码中的容器 View 滑出菜单 Project Link: https://github.com/mikefrederick/MFSideMenu .他使用的是 nib (.xib) 文件,而我使用 Storyboard 来实现相同的目的,并且对定义容器和 subview 感到震惊。可以请一些建议如何修改下面的代码以适应我的 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
- 如何修改代码以容纳容器父 View 和 subview ?
- 我应该在哪里实例化第二个选项卡 View 的父 View 和 subview 的代码?在 AppDelegate 或 View Controller 中?
如果需要任何其他详细信息,请发表评论。任何帮助将不胜感激。提前致谢。
最佳答案
我不知道你是否还需要这个,但我今天也遇到了完全相同的问题。你需要做的是:
- 通过您的应用委托(delegate)删除这两种方法
将其放入您的应用委托(delegate)中:
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”的子类。在属性检查器中将此 View 标记为“初始 View Controller ”。现在从新的 Initial View Controller 使用 Segue 并让它“推送”到您的 TabBarController。为避免警告重命名 Segue。
做完这些之后,你可以给每个View添加一个UIBarButtonItem,你喜欢添加SideMenu。在这个 UIBarButtomItem 的 Action Method 中你只需要这样做:
[self.menuContainerViewController toggleLeftSideMenuCompletion:^{}];
最后确保你有一个 UIViewController 或 UITableViewController,这是你的“SideMenu”并设置正确的 Storyboard ID。
如果您仍然需要帮助,请发表评论... 对不起我的英语:)
关于ios - Storyboard中带有 tabBarController 的侧边菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032833/