2013-02-27 33 views
0

我使用Facebook成功登录。 Login视图是一个UIViewController。我只能用Facebook登录后无法将PFQueryTableViewController推送到

@interface LoginViewController : UIViewController <PFLogInViewControllerDelegate, PFSignUpViewControllerDelegate> 

的问题是,一旦我成功登录,我想用户看到一个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也没有显示导航栏,即使该表嵌入在导航控制器中。

下面是我的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方法的代码,但我也不太清楚。

更新:

每下面的答案我试图通过presentModalViewController推登录在MyPFQueryTableViewController.m文件。

- (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; 
} 

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

回答

2

一种选择是具有PFQueryTableViewController作为初始视图控制器和模态呈现LoginViewController应用程序启动时。这是我在我的应用程序中使用Parse时所做的工作

+0

哦,那实际上可以工作......看到一些代码会太麻烦吗?如果是这样,没什么大不了的。没有想到这一点! – STANGMMX 2013-02-27 04:20:47

+0

我没有在我身上我的应用程序代码的时刻,但如果你使用故事板设置MyPFQueryTableViewController要不然的话在应用程序委托的应用程序的初始视图:应用程序didFinishLaunchingWithOptions:将其设置为RootViewController的那么MyPFQueryTableViewController的viewDidLoad初始化loginViewController并呈现它。 – Dos43 2013-02-27 05:07:38

+0

甜。今晚我会给它一个旋风。我会保持这个开放,直到那时,如果它工作,我会把它关闭。 PFLoginViewController是否仅从UIViewController“继承”?我想这就是为什么我从来没有想过我能做到这一点。 – STANGMMX 2013-02-27 16:10:19