2013-02-27 43 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