我有一個單一的視圖應用程序,利用分析來創建一個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