我想检查 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/