Facebook登录后提供异常,但在登录时使用注册表单,它在iOS

时间:2015-11-06 08:00:19

标签: ios facebook

我有两个注册选项,有一个选项,我有完美的主页,但如果我登录Facebook而不是下一个视图控制器完美但在那之后,如果我点击主页菜单的任何按钮,它给出例外。

  

'NSGenericException',原因:'推送segues只能在源控制器由UINavigationController实例管理时使用。'“        如果我从我注册的用户登录,我从我这边登记,那么它运作良好。

- (void)  loginButton:(FBSDKLoginButton *)loginButton
didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
                error:(NSError *)error
{
    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                                  initWithGraphPath:@"/me"
                                  parameters:@{ @"fields": @"id,name,picture,email,gender"}
                                  HTTPMethod:@"GET"];
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
        // Insert your code here
        NSLog(@"%@",result);
        if ([result isKindOfClass:[NSDictionary class]]) {
            NSDictionary* json = result;

            NSLog(@"email id is %@",[json valueForKey:@"email"]);
            NSLog(@"json is %@",json);

            [[NSUserDefaults standardUserDefaults] setValue:[json valueForKey:@"email"] forKey:@"fbemail"];

            name =[json objectForKey:@"name"];
            email =[json objectForKey:@"email"];
            gender=[json objectForKey:@"gender"];
            NSLog(@"name is %@",name);

            NSLog(@"emailp is %@",email);
            NSLog(@"gender is %@",gender);
            NSDictionary *pictureData  = [result valueForKey:@"picture"];
            NSDictionary *redata = [pictureData valueForKey:@"data"];
            _urlpicture = [redata valueForKey:@"url"];

            HomeViewController *pushWithSlot=[self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];

            pushWithSlot.geturl=_urlpicture;
            pushWithSlot.getname=name;
            pushWithSlot.getemail=email;
            pushWithSlot.getgender=gender;



            [self presentViewController:pushWithSlot  animated:YES
                             completion:nil];
        }
    }];

}

1 个答案:

答案 0 :(得分:1)

选择您的LoginViewController并转到XCode菜单 - >的编辑 - > 嵌入 - > 导航控制器。

以上功能不起作用

  1. 将您的HomeViewController添加到现有导航控制器的堆栈中,而不是以模态方式呈现它

    1. 您需要将HomeViewController嵌入到另一个导航控制器中,然后从loginViewController以模态方式创建和呈现该导航控制器
  2. 另一种方式,HomeViewController需要嵌入导航控制器才能使用Push Segues