我在我的应用程序(iOS)中遇到了一些非常非常麻烦的问题,但对于我的生活,我无法弄清楚为什么它会以这种方式运行。我想要做的就是在用户成功登录时解除loginViewController。我尝试了许多不同的方法,但无论我做什么,都不会调用logInController didLogInUser方法。登录仍然可以正常工作,但它只是不解除视图。我知道我在这里遗漏了一些非常简单的东西,但我不知道它是什么。任何人都可以帮我一把吗?
- (void)viewDidLoad
{
PFLogInViewController *loginView = [[PFLogInViewController alloc] init];
if ([PFUser currentUser])
{
[self performSegueWithIdentifier:@"loggedIn" sender:self];
}
else
{
[self presentViewController:loginView animated:NO completion:nil];
}
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user
{
[self dismissModalViewControllerAnimated:YES];
}
我一如既往地欣赏它。
答案 0 :(得分:2)
我猜测你这样做之后:
PFLogInViewController *loginView = [[PFLogInViewController alloc] init];
你应该在某处添加:
loginView.delegate = self;
并确保在ViewController.h中添加
@interface YourViewController : UIViewController <PFLoginViewControllerDelegate>
只是为了清理一下,我改变了这个:
- (void)viewDidLoad
{
PFLogInViewController *loginView = [[PFLogInViewController alloc] init];
if ([PFUser currentUser])
{
[self performSegueWithIdentifier:@"loggedIn" sender:self];
}
else
{
[self presentViewController:loginView animated:NO completion:nil];
}
[super viewDidLoad];
// Do any additional setup after loading the view.
}
To This:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
if ([PFUser currentUser])
{
[self performSegueWithIdentifier:@"loggedIn" sender:self];
}
else
{
PFLogInViewController *loginView = [[PFLogInViewController alloc] init];
loginView.delegate = self;
[self presentViewController:loginView animated:NO completion:nil];
}
}