在Facebooklogin之后,麻烦推到PFQueryTableViewController

我成功loginFacebook。 login视图是一个UIViewController。 我只能通过使用访问Parse的loginfunction

@interface LoginViewController : UIViewController <PFLogInViewControllerDelegate, PFSignUpViewControllerDelegate> 

问题是,一旦我成功login,我想用户看到一个PFQueryTableViewController。 该应用程序都是基于列表,所以推动这一点是有道理的。

我试过这个:

 - (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user { [self dismissViewControllerAnimated:YES completion:^{ NSLog(@"Successfully logged in."); MyPFQueryTableViewController *controller = [[MyPFQueryTableViewController alloc] init]; //Not sure what to do here... }]; } 

原来我推到了TableView。 我已经删除了这个代码,坦率地说,我不知道我是怎么做到的。

但是,发生了什么事,我看到UIViewController一秒钟,然后出现PFQueryTableViewController。

不仅如此,PFQueryTableViewController也不显示导航栏,即使表格embedded在导航控制器中。

这是我的LoginViewController.m的代码

 #import "LoginViewController.h" #import <Parse/Parse.h> #import "MyPFQueryTableViewController.h" @interface LoginViewController () @end @implementation LoginViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; PFLogInViewController *login = [[PFLogInViewController alloc] init]; login.fields = PFLogInFieldsFacebook; // Need to set the delegate to be this controller. login.delegate = self; login.signUpController.delegate = self; //signUpController is a property on the login view controller [self presentModalViewController:login animated:NO]; // Do any additional setup after loading the view. } /* - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { UINavigationController *navigationController = segue.destinationViewController; MyPFQueryTableViewController *controller = (MyPFQueryTableViewController *) navigationController.topViewController; } - (void)viewDidAppear:(BOOL)animated { MyPFQueryTableViewController *controller = [[MyPFQueryTableViewController alloc] initWithClassName:@"Lists"]; [self presentViewController:controller animated:NO completion:nil]; } */ //Four delegation methods below. - (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user { [self dismissViewControllerAnimated:YES completion:^{ NSLog(@"Successfully logged in."); MyPFQueryTableViewController *controller = [[MyPFQueryTableViewController alloc] init]; //Not sure what to do here... }]; } 

我想也许我需要使用segue方法,但我不太确定。

更新:

根据下面的答案我试图通过在MyPFQueryTableViewController.m文件中presentModalViewController的login。

 - (void)viewDidLoad { [super viewDidLoad]; // Uncomment the following line to preserve selection between presentations. // self.clearsSelectionOnViewWillAppear = NO; // Uncomment the following line to display an Edit button in the navigation bar for this view controller. PFLogInViewController *login = [[PFLogInViewController alloc] init]; login.fields = PFLogInFieldsFacebook; login.delegate = self; login.signUpController.delegate = self; [self presentModalViewController:login animated:NO]; //self.navigationItem.rightBarButtonItem = self.editButtonItem; } 

看到我的下面的评论我得到的警告。

一种select是将PFQueryTableViewController作为初始视图控制器,并在应用程序启动时以模态方式呈现LoginViewController。 这是我在我的一个应用程序中使用Parse时所做的