【问题标题】:correct way to handle logout from table row处理从表行注销的正确方法
【发布时间】:2013-09-27 02:46:02
【问题描述】:

我有一个使用菜单滑块的应用程序,在菜单底部有一行供用户注销this is how the menu looks like。我很难想办法让用户登录到我的启动屏幕this is how my storyboard looks like

我想要达到的目标

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

我的尝试

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

- (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 一直)。

两个问题

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

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

【问题讨论】:

    标签: iphone ios objective-c


    【解决方案1】:

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

    看看下面的代码:

        -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if(indexPath.row==5){
           [PFUser logOut];
           [self performSegueWithIdentifier:@"logOutSegue" sender:self];
        }
    }
    

    【讨论】:

    • 哇,我刚刚做了同样的事情!this is how i figured it out。只是一个补充,我还必须从注销行添加一个 segue 到我的启动菜单。谢谢。
    【解决方案2】:

    你应该这样做

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

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

    【讨论】:

    • 这种方法的问题是,只要我打开菜单,它就会显示警报,而无需我单击注销行(这是我的问题首先)。问题是确定用户单击了注销行。如何识别特定行的点击
    猜你喜欢
    • 2016-01-02
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 2018-01-15
    • 2012-10-28
    • 2011-03-31
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多