我使用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;
}
看到我下面的警告我得到的評論。
哦,那實際上可以工作......看到一些代碼會太麻煩嗎?如果是這樣,沒什麼大不了的。沒有想到這一點! – STANGMMX 2013-02-27 04:20:47
我沒有在我身上我的應用程序代碼的時刻,但如果你使用故事板設置MyPFQueryTableViewController要不然的話在應用程序委託的應用程序的初始視圖:應用程序didFinishLaunchingWithOptions:將其設置爲RootViewController的那麼MyPFQueryTableViewController的viewDidLoad初始化loginViewController並呈現它。 – Dos43 2013-02-27 05:07:38
甜。今晚我會給它一個旋風。我會保持這個開放,直到那時,如果它工作,我會把它關閉。 PFLoginViewController是否僅從UIViewController「繼承」?我想這就是爲什麼我從來沒有想過我能做到這一點。 – STANGMMX 2013-02-27 16:10:19