在任何事情和所有事情之前,我知道另一个用户存在类似的线程,我尝试了代码回答,但它对我没有用,因为我的风险投资和故事板有点不同,因此提出同样的问题我的设置和参数
我的故事板和应用程序看起来像这样,我的初始rootViewController作为tabBarController。
我正在使用这个PKRevealController添加一个滑块左菜单栏
https://github.com/pkluz/PKRevealController/blob/master/Documentation/USAGE.md
我在appDelegate的didFinishLaunchingWithOptions方法中添加了以下代码(取自我在SO上找到的类似问题的答案)
PKRevealController *revealController = (PKRevealController *)self.window.rootViewController;
UIViewController *leftViewController = [[GDmenuViewController alloc] init];
UIViewController *frontViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"tabBarCtrl"];
[revealController setLeftViewController:leftViewController];
[revealController setFrontViewController:frontViewController];
GDmenuViewController是我为UITableView菜单在左侧使用的UITableViewController类 tabBarCtrl是我设置的tabBarController的StoryBoardID
编译后我收到以下错误
2014-03-16 18:18:06.659[3595:70b] -[UITabBarController setLeftViewController:]: unrecognized selector sent to instance 0xcf565a0
2014-03-16 18:18:06.662[3595:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITabBarController setLeftViewController:]: unrecognized selector sent to instance 0xcf565a0'
--------更新-------------
我将app delegate中的代码更改为以下内容,因为我的tabBarController是我的initialVC
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
GDmenuViewController *leftViewController = [tabBarController.storyboard instantiateViewControllerWithIdentifier:@"leftMenu"];
PKRevealController *revealController = [PKRevealController revealControllerWithFrontViewController:tabBarController leftViewController:leftViewController];
self.window.rootViewController = revealController;
现在我没有收到该错误,但我的menuViewController(TableView)仍然没有出现。
我可以运行应用程序,甚至可以滑动以查看PKVC是否正常工作,而不是我的tableView,它只显示一个灰色的空白视图
答案 0 :(得分:2)
对于遇到类似问题的人来说,这就是我修复并使其发挥作用的方式:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
GDmenuViewController *leftViewController = [tabBarController.storyboard instantiateViewControllerWithIdentifier:@"leftMenu"];
PKRevealController *revealController = [PKRevealController revealControllerWithFrontViewController:tabBarController rightViewController:leftViewController];
self.window.rootViewController = revealController;
我的TabBarController是我的rootViewController以及入口点
我的leftMenu是一个带有自定义类GDmenuViewController的滑动菜单TableViewController
PS:如果滑动有效,但你没有看到你按照预期刷过的menuVC(在我的情况下为灰色),请检查menuVC的identityInspector中的所有内容,很可能会出现问题。
在我的情况下,我的细胞(静态)是有缺陷的,所以我不得不删除所有细胞并读取它们。