我有两个注册选项,有一个选项,我有完美的主页,但如果我登录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];
}
}];
}
答案 0 :(得分:1)
选择您的LoginViewController
并转到XCode菜单 - >的编辑强> - > 嵌入 - > 导航控制器。
以上功能不起作用
将您的HomeViewController
添加到现有导航控制器的堆栈中,而不是以模态方式呈现它
HomeViewController
嵌入到另一个导航控制器中,然后从loginViewController以模态方式创建和呈现该导航控制器另一种方式,HomeViewController
需要嵌入导航控制器才能使用Push Segues