好吧,我在我的一个功能中遇到的问题是当用户通过Facebook登录时,我的应用程序正在检查他们的Facebook用户名是否已存在于我们的应用程序(Parse.com)数据库中。
如果是这样,提出一个视图控制器(这是我遇到问题,因为这是在NSObject中)如果没有,只需编写他们的facebook用户名来解析用户名字符串。我得到的错误是:没有已知的选择器'presentViewController:animated:completion'
的类方法这是我的代码:
PFQuery *query = [PFUser query]; //1
[query whereKey:@"username" equalTo:me.username];//2
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {//4
if (!error) {
NSLog(@"Successfully retrieved: %@", objects);
if ([objects count] > 0)
{
// LOOKING TO PRESENT VIEW CONTROLLER HERE?
// TRIED:
// [self presentViewController:[@"RegisterUsername" animated:YES completion:nil];
} else {
[[PFUser currentUser] setObject:me.username forKey:@"username"];
}
} else {
NSString *errorString = [[error userInfo] objectForKey:@"error"];
NSLog(@"Error: %@", errorString);
}
}];
由于这是继承自NSObject,因此不允许我使用presentViewController。不知道还有什么可以做的。 :-(这个视图控制器将在继续我们的应用程序之前设置用户名。此代码目前在用于Facebook iOS SDK的头文件Comms.h(NSOBJECT)中的登录功能
答案 0 :(得分:1)
NSObject不声明方法presentViewController:
。您需要将一个UIViewController子类添加到窗口,然后从中显示。在dismissViewController
的完成区中,您应该从窗口中删除父级。
或者,您可以创建一个委托协议来检查用户名,然后通知UIViewController需要在内部设置用户名或提供登录视图。