0

我有一个使用菜单滑块的应用程序,在菜单底部有一行供用户注销,这就是菜单的外观。我很难想出一种将用户登录到我的启动画面的方法,这就是我的故事板的样子

我想达到什么

当用户单击菜单中的注销行时,我想使用 [PFUser logOut] 执行注销;(我使用 parse 作为后端)并返回到我的启动屏幕,或者使用情节提要 id 实例化启动视图或执行手动模式 segue 或以某种方式从应用程序委托中神奇地调用视图。

我试过的

我尝试了 [PFUser logout] 并像这样对 cellForRowAtIndexPath 方法执行手动搜索。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSString *CellIdentifier = [self.menuItems objectAtIndex:indexPath.row];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if (indexPath.row == 5) {
        [PFUser logOut];
        [self performSegueWithIdentifier:@"logOutSegue" sender:self];
    }

     return cell;
}

我能够注销用户并显示我的启动屏幕,但是只要我单击菜单按钮(因为 indexPath.row == 5 一直),这就会将用户注销。

两个问题

如果我尝试的是正确的方法,我如何识别用户是否单击菜单中的注销行?如果这不是正确的方法,那么解决这个问题的有效方法是什么?

如果有人可以帮助我解决这个问题,我将不胜感激。

4

2 回答 2

0

你应该从

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

注销用户的最佳方法是提示 UIAlertView(您确定要注销吗?是||否)以确保他没有错过单击此按钮。在此警报视图的委托方法中,您应该从导航堆栈中弹出您的视图(最好的方法是 popToRootViewController)。您也可以在情节提要中执行此操作。

于 2013-09-21T22:39:53.577 回答
0

您遇到的问题是您从 UITableView 的 cellForRowAtIndexPath 委托方法中调用该代码。每当 tableView 加载单元格时,它就会运行。相反,您希望在用户单击单元格时运行,因此您需要使用 UITableView 的 didSelectRowAtIndexPath 委托方法。

看看下面的代码:

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row==5){
       [PFUser logOut];
       [self performSegueWithIdentifier:@"logOutSegue" sender:self];
    }
}
于 2013-09-21T23:23:52.150 回答