【发布时间】:2015-10-27 00:01:34
【问题描述】:
我正在使用aryaxt/iOS-Slide-Menu。我的问题是:我需要根据显示的视图控制器显示不同的左侧菜单。这是我在 AppDelegate 中的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UserMenuViewController *leftMenu = (UserMenuViewController *) [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"UserMenuViewController"];
[SlideNavigationController sharedInstance].leftMenu = leftMenu;
当我尝试在我的特殊 ViewController 中更改左侧菜单时,左侧菜单中出现黑屏。
AppDelegate *sharedeDelegate = ((AppDelegate *)[UIApplication sharedApplication].delegate);
ProfessionalMenuViewController *leftMenu = (ProfessionalMenuViewController *) [sharedeDelegate.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"ProfessionalMenuViewController"];
[SlideNavigationController sharedInstance].leftMenu = leftMenu;
我尝试了很多东西,但没有任何效果。谢谢!
【问题讨论】:
-
使 UserMenuViewController *leftMenu 成为 AppDelegate.h 中的一个属性。在 didFinishLaunchingWithOptions 中启动它作为 self.leftMenu = [whatever you want]。在其他视图控制器中,访问 Appdelegate 并将其设置为 sharedDelegate.leftMenu = [whatever]。不过有个问题,你为什么在 AppDelegate 中使用它?为什么不把它作为VC的成员,因为不同VC的功能不同?
-
如果我从应用程序委托中移动它,我会得到黑屏。
-
@RenanGelrado,你尝试过我的建议了吗?
-
@NSNoob,是的,我做了,但没用。
标签: ios objective-c hamburger-menu