Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS中的左菜单栏_Ios_Objective C_Xcode - Fatal编程技术网

IOS中的左菜单栏

IOS中的左菜单栏,ios,objective-c,xcode,Ios,Objective C,Xcode,我从GitHub上的一个现有项目导入了一些文件,并制作了一个左侧菜单栏,其中包含以下项目:主页、关于我们和登录 当用户使用“登录”菜单栏项登录时,我希望“登录”项的标题更改为“注销”。用户应保持登录状态,直到用户按下“注销”。当用户注销时,该项的标题应更改回“登录” 注意:左侧菜单栏中的项目是静态单元格。在NSUSerDefaults中保存您的登录状态(标志)。登录后,将yes else no.保存在单元格中,然后单击该标志相应设置标题。并相应地管理操作(登录或注销过程) Objective-C

我从GitHub上的一个现有项目导入了一些文件,并制作了一个左侧菜单栏,其中包含以下项目:主页、关于我们和登录

当用户使用“登录”菜单栏项登录时,我希望“登录”项的标题更改为“注销”。用户应保持登录状态,直到用户按下“注销”。当用户注销时,该项的标题应更改回“登录”


注意:左侧菜单栏中的项目是静态单元格。

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方法中使用相同的标志来管理登录和注销操作。很抱歉,我不明白,你们可以详细解释@杰德普