objective-c - MFSideMenuController 内部 viewwillappear 方法不起作用

标签 objective-c iphone ios7

我想检查 nsuserdefault 值是否可用,如果值可用,则应显示注销,如果值为零,则应在侧面菜单中显示登录 我正在 viewwillappear 方法中执行此操作,但它不起作用,请有人澄清这一点。

-(void)viewWillAppear:(BOOL)animated
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *id1 = [defaults objectForKey:@"ID"];


    if (id1.length>0)
    {
        recipes = [NSArray arrayWithObjects:@"Account Details", **@"Logout",** @"Change Password", @"Contacts", @"Ham and Cheese Panini", nil];
    }

    else
    {
        recipes = [NSArray arrayWithObjects:@"Account Details", @"**Login**", @"Change Password", @"Contacts", @"Ham and Cheese Panini", nil];
    }


}

最佳答案

假设 MFSidemenu 是一个用于显示菜单的抽屉式功能的 Pod。 MFSidemenu 有以下方法来显示侧边菜单。

[self.menuContainerViewController setMenuState:MFSideMenuStateLeftMenuOpen completion:^{}];

您可以在调用此方法之前或在完成 block 中添加对 NSUserDefaults 的检查,以适合您的方式进行。 ViewWillAppear 不会在每次打开侧边菜单时调用。

它还有一个通知,您可以观察到在 SideMenu 打开时触发(即菜单将打开、菜单确实打开等)

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(menuStateEventOccurred:)
name:MFSideMenuStateNotificationEvent
object:nil];

- (void)menuStateEventOccurred:(NSNotification *)notification {
    MFSideMenuStateEvent event = [[[notification userInfo] objectForKey:@"eventType"] intValue];
    MFSideMenuContainerViewController *containerViewController = notification.object;
// Check whether menu opens here and then add your code.

}

关于objective-c - MFSideMenuController 内部 viewwillappear 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38260061/

相关文章:

ios - 维护 View Controller 之间的信息

objective-c - 在 UITextField 中单击时更改 iOS 应用程序中的键盘语言

objective-c - 在 UIWebView 中构建我自己的图像查看器 - 替换网页中的 Flash 图像播放器

ios - 我可以让我的 UIView 的框架匹配它的曾祖 parent 吗?

ios - 我可以存储 paypal 信息,例如 paypal 的用户 ID 和密码以及用于自动充值功能的信用卡详细信息吗?

ios - 通过 itms-apps 打开应用商店

iphone - 如何在自定义 UITableViewCell 中控制 UITextFields 的编辑

iphone - Xcode 4.5.2 : How to correctly program a CGRectMake?

iPhone 开发 - 限制用户与应用程序的交互并显示进度指示器

ios - 在 UIScrollView 上放置自定义图层