我有一个单一的视图应用程序,利用分析来创建一个PFLogInViewController。在BeaconViewController可以被访问之前,用户必须通过Facebook进行身份验证 - 这工作正常。我的问题是注销部分 - 在用户会话被销毁后,我需要PFLogInViewController
重新出现。我试图通过弹出到RootViewController
来实现这一点,但这不能解决问题。重新加载iOS视图控制器
这里是BeaconViewController.m
与认证和注销逻辑
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
[self dismissViewControllerAnimated:YES completion:nil];
[self pictureRequest];
}
else if (error) {
NSLog(@"facebook session was invalid");
[self logoutButtonAction:nil];
PFLogInViewController *login = [[PFLogInViewController alloc] init];
login.fields = PFLogInFieldsFacebook;
login.delegate = self;
NSArray *permissionsArray = @[ @"user_about_me", @"user_relationships", @"user_birthday", @"user_location"];
login.facebookPermissions = permissionsArray;
[self presentViewController:login animated:YES completion:nil];
}
else {
NSLog(@"Some other error: %@", error);
}
}];
}
- (IBAction)logoutButtonAction:(id)sender {
[PFUser logOut];
[self.navigationController popToRootViewControllerAnimated:YES];
}
仅供参考。 'viewDidLoad'和'viewDidAppear'不适合你打电话。他们是为系统打电话。 – 2014-11-04 21:52:34
另外,请解释downvote - 我事先研究了这一点,并提供了必要的背景细节 – Anconia 2014-11-04 22:19:38
您应该尝试用更通用的方式来描述您的问题,并将其与不相关的细节(PFViewController,Facebook,blah)你的项目。与此同时,你遗漏了重要的信息(控制器呈现这个控制器的是什么)。虽然我知道你的问题的原因是什么(你不能忽略并重新显示将要显示的视图控制器的视图控制器),但解决方案是阅读视图控制器的基础知识,而不是绕过你的缺少关于如何正确使用视图控制器的基本知识:http://bit.ly/1pifOy5 – auco 2014-11-04 22:32:31