iOS 8.3 故事板侧边菜单
iOS 8.3 storyboard side menu
1) 目前在我的应用程序中,我尝试使用
实现侧边菜单
从 https://github.com/John-Lluch/SWRevealViewController 下载的 SWRevealViewController。
2) Reveal View controller 故事板文件是 SWRevealViewController 的 class,我已将其导入到我的项目 SWRevealViewController.h 和 .m 中。
3)Reveal View controller storyboard file to tableviewcontroller & navigation controller segue name reveal view controller set controller.
4) 最后一个视图控制器故事板文件是 class 的视图控制器
UIBarButtonItem *barButton
这是我在 viewcontroller.m
中的代码
#import "SWRevealViewController.h"
- (void)viewDidLoad
{
[super viewDidLoad];
SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
_barButton.target = self.revealViewController;
_barButton.action = @selector(revealToggle:);
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
}
5) 当我 运行 我的应用程序时,模拟器中出现黑屏,我实际上需要带有侧边菜单的条形按钮。
6) Storyborad只有4个文件
1.revealViewController 连接到 tableview 控制器(使用 reveal view controller set controller segue)
2.revealViewController 连接到导航控制器(使用 reveal view controller set controller segue)
3.navigation 控制器到 Viewcontroller(使用根视图控制器 segue)
6) 我的文件是 SWRevealViewController.h &.m, ViewController.h&.m, AppDelegate.h&.m, tableviewcontroller.h&.m
为了实现侧边菜单,我参考了这个http://www.appcoda.com/ios-programming-sidebar-navigation-menu/
IOS: Storyboard and side menu as facebook app
你的日志有写什么吗?
黑屏通常是缺少初始视图控制器。
确保你已经选择了视图控制器,你想成为你的初始视图控制器,并在你的故事板编辑器中选中复选框("Is initial View Controller")。
请确保在故事板中设置 SWSegueFrontIdentifier 和 SWSegueRightIdentifier segue 标识符。这两个标识符在SWRevealViewController中声明为
static NSString * const SWSegueRearIdentifier = @"sw_rear";
static NSString * const SWSegueFrontIdentifier = @"sw_front";
您应该从 SWRevealViewController(故事板中的初始视图控制器)为前视图控制器和后视图控制器创建两个 segue。并设置各自的 segue 标识符。
我在故事板 segue 命名中犯的错误
1.revealViewController 连接到 tableview 控制器(使用 reveal view controller set controller segue)
2.revealViewController 连接到导航控制器(使用 reveal view controller set controller segue)
以上两个问题的正确解决方案是,storyboard segue 应该是 SWRevealViewControllerSegueSetController 的 segue class 下的自定义 segue。然后它对我有用。
1) 目前在我的应用程序中,我尝试使用
实现侧边菜单
从 https://github.com/John-Lluch/SWRevealViewController 下载的 SWRevealViewController。
2) Reveal View controller 故事板文件是 SWRevealViewController 的 class,我已将其导入到我的项目 SWRevealViewController.h 和 .m 中。
3)Reveal View controller storyboard file to tableviewcontroller & navigation controller segue name reveal view controller set controller.
4) 最后一个视图控制器故事板文件是 class 的视图控制器
UIBarButtonItem *barButton
这是我在 viewcontroller.m
中的代码#import "SWRevealViewController.h"
- (void)viewDidLoad
{
[super viewDidLoad];
SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
_barButton.target = self.revealViewController;
_barButton.action = @selector(revealToggle:);
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
}
5) 当我 运行 我的应用程序时,模拟器中出现黑屏,我实际上需要带有侧边菜单的条形按钮。
6) Storyborad只有4个文件
1.revealViewController 连接到 tableview 控制器(使用 reveal view controller set controller segue)
2.revealViewController 连接到导航控制器(使用 reveal view controller set controller segue)
3.navigation 控制器到 Viewcontroller(使用根视图控制器 segue)
6) 我的文件是 SWRevealViewController.h &.m, ViewController.h&.m, AppDelegate.h&.m, tableviewcontroller.h&.m
为了实现侧边菜单,我参考了这个http://www.appcoda.com/ios-programming-sidebar-navigation-menu/ IOS: Storyboard and side menu as facebook app
你的日志有写什么吗?
黑屏通常是缺少初始视图控制器。
确保你已经选择了视图控制器,你想成为你的初始视图控制器,并在你的故事板编辑器中选中复选框("Is initial View Controller")。
请确保在故事板中设置 SWSegueFrontIdentifier 和 SWSegueRightIdentifier segue 标识符。这两个标识符在SWRevealViewController中声明为
static NSString * const SWSegueRearIdentifier = @"sw_rear";
static NSString * const SWSegueFrontIdentifier = @"sw_front";
您应该从 SWRevealViewController(故事板中的初始视图控制器)为前视图控制器和后视图控制器创建两个 segue。并设置各自的 segue 标识符。
我在故事板 segue 命名中犯的错误
1.revealViewController 连接到 tableview 控制器(使用 reveal view controller set controller segue)
2.revealViewController 连接到导航控制器(使用 reveal view controller set controller segue)
以上两个问题的正确解决方案是,storyboard segue 应该是 SWRevealViewControllerSegueSetController 的 segue class 下的自定义 segue。然后它对我有用。