IOS中的左菜单栏
我从GitHub上的一个现有项目导入了一些文件,并制作了一个左侧菜单栏,其中包含以下项目:主页、关于我们和登录 当用户使用“登录”菜单栏项登录时,我希望“登录”项的标题更改为“注销”。用户应保持登录状态,直到用户按下“注销”。当用户注销时,该项的标题应更改回“登录”IOS中的左菜单栏,ios,objective-c,xcode,Ios,Objective C,Xcode,我从GitHub上的一个现有项目导入了一些文件,并制作了一个左侧菜单栏,其中包含以下项目:主页、关于我们和登录 当用户使用“登录”菜单栏项登录时,我希望“登录”项的标题更改为“注销”。用户应保持登录状态,直到用户按下“注销”。当用户注销时,该项的标题应更改回“登录” 注意:左侧菜单栏中的项目是静态单元格。在NSUSerDefaults中保存您的登录状态(标志)。登录后,将yes else no.保存在单元格中,然后单击该标志相应设置标题。并相应地管理操作(登录或注销过程) Objective-C
注意:左侧菜单栏中的项目是静态单元格。在
NSUSerDefaults
中保存您的登录状态(标志)
。登录后,将yes else no.保存在单元格中,然后单击该标志相应设置标题。并相应地管理操作(登录或注销过程) Objective-C
1) 首先保存您的登录状态,如下所示
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"isLoggedIn"];
2) 在indexPath的cellForRow中编写以下代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (indexPath.row == YOUR TABLE CELL) {
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"]) {
cell.lblMenuTitle.text = @"Log out";
} else {
cell.lblMenuTitle.text = @"Log In";
}
}
[return cell];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == YOUR TABLE CELL) {
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"]) {
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"isLoggedIn"];
} else {
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"isLoggedIn"];
}
[tableView reloadData];
}
}
3) 在tableView的DidSelect方法中编写以下代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (indexPath.row == YOUR TABLE CELL) {
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"]) {
cell.lblMenuTitle.text = @"Log out";
} else {
cell.lblMenuTitle.text = @"Log In";
}
}
[return cell];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == YOUR TABLE CELL) {
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"]) {
[[NSUserDefaults standardUserDefaults] setBool:false forKey:@"isLoggedIn"];
} else {
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"isLoggedIn"];
}
[tableView reloadData];
}
}
4) 最后,在左侧菜单类中,将出现在视图中添加代码
-(void)viewWillAppear:(BOOL)animated
{
[tableView reloadData];
}
尝试以下方法:当您登录成功时,请在userdefault中为登录成功设置bool值,并检查bool值是否为true,然后使用[“”、“”、“注销”],如果为false,则使用[“”、“”、“登录”],请详细说明@布巴特Bheda@omer你能给你看一下代码吗?这样我就可以修改它们,重新格式化并修正一些语法,以澄清OP的要求。请仔细解释一下,我是新来的,我不明白@Lionim没有使用nsuserdefault,我正在获取响应并解析它。替换nsuserdefault时要写什么@JaydeYes,但是当您获得登录响应时,解析它并将类似“isLoggedIn”的标志存储到NSUserDefaults中,然后在调用Logout service时从NSUserDefaults中删除该值。因此,它将作为状态标志,指示用户是否登录?。你们可以在cellForRow方法中使用相同的标志来管理登录和注销操作。很抱歉,我不明白,你们可以详细解释@杰德普