我使用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