来自NSObject的PresentViewController?

时间:2013-10-07 12:47:39

标签: ios xcode parse-platform facebook-ios-sdk nsobject

好吧,我在我的一个功能中遇到的问题是当用户通过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)中的登录功能

1 个答案:

答案 0 :(得分:1)

NSObject不声明方法presentViewController:。您需要将一个UIViewController子类添加到窗口,然后从中显示。在dismissViewController的完成区中,您应该从窗口中删除父级。

或者,您可以创建一个委托协议来检查用户名,然后通知UIViewController需要在内部设置用户名或提供登录视图。