ios - 注销 PFuser 将您带回登录屏幕,但 navigationController 现在是空白的?

标签 ios objective-c parse-platform

我正在使用 parse.com。我有一个自定义类 chwRootViewControllerUINavigationController,它被设置为初始 View 。

当用户成功登录时运行:

// Sent to the delegate when a PFUser is logged in.
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
    [self dismissViewControllerAnimated:YES completion:NULL];
}

现在 chwMainviewController 是登录方法关闭 chwRootViewController 时显示的 UIViewController。在主视图 Controller 中,我有一个用于单击注销按钮的 IBAction,如下所示:

- (IBAction)logoutButtonClicked:(id)sender {

    [PFUser logOut]; // Log out


    // Return to login page
    if (![PFUser currentUser]) {

        [self.navigationController popToRootViewControllerAnimated:YES];
    }

问题是最后一行将用户返回到登录屏幕,但现在 chwMainViewController 不再准备好等待登录屏幕。当您第二次登录时,当 chwRootViewController 被关闭时,只有黑屏。我做错了什么?

最佳答案

您可以使用以下步骤:

在您的初始 view controllerchwMainviewController.m 文件中,执行以下操作:

  1. 实现 viewDidAppear 方法,如下所示:

    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:YES];
        if (![PFUser currentUser]) {
            [self showLogInPage];
        }
    }
    
  2. showLogInPage方法中编写显示解析登录页面代码,如下所示:

    - (void)showLogInPage
    {
        PFLogInViewController *logInController = [[PFLogInViewController alloc] init];
        logInController.delegate = self;
        logInController.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton | PFLogInFieldsSignUpButton | PFLogInFieldsFacebook;
        PFSignUpViewController *signUpController = [[PFSignUpViewController alloc] init];
        signUpController.delegate = self;
        logInController.signUpController = signUpController;
       [self presentViewController:logInController animated:YES completion:nil];
    }
    
  3. 最后,按如下方式实现您的logoutButtonClicked:

    - (IBAction)logoutButtonClicked:(id)sender {
        [PFUser logOut];
        [self showLogInPage];
    }
    

注意:

如果您没有使用 storyboard,请确保将 chwMainviewController 设置为您的 rootViewController 应用程序 didFinishLaunchingWithOptions 方法。

希望对您有所帮助!

关于ios - 注销 PFuser 将您带回登录屏幕,但 navigationController 现在是空白的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21107776/

相关文章:

iOS 通过单击按钮在解析服务器连接之间切换

ios - 将模型从 UINavigationView 转发到 UIView

ios - 通过 WebRTC 在 iOS 中进行视频流传输

ios - 原型(prototype)单元格内带有标签的标签未更新

iphone - 在将对象添加到集合之前使用自动释放?

objective-c - 对数字进行排序 Objective-C

ios - 标注按钮使应用程序崩溃 - MapKit

ios - 使用导航栏按钮 Swift 更改 Collection View Cell 背景

c# - 将 .Net int 数组转换为 Java.Lang.Object

python - 使用 Django 传递文件对象