我正在构建一个iOS应用程序。我已经在我的应用程序中实现了Facebook和Twitter集成。
我在viewcontroller中遇到问题我有按钮Next并实现了push segue 在该按钮上进入下一个视图,但是当我点击“下一步”按钮并出现错误时,我的应用程序崩溃了。
错误:因未捕获的异常终止应用程序' NSGenericException',原因:'无法找到segue' nextSport'的导航控制器。 Push segues只能在源控制器由UINavigationController实例管理时使用。'
以下是故事板的屏幕截图:
上一张图片:
目前(新)图片已添加:
这是我的代码:
- (IBAction)fbLogin:(id)sender {
[FBSession openActiveSessionWithReadPermissions:@[@"email",@"user_location",@"user_birthday",@"user_hometown"]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
switch (state) {
case FBSessionStateOpen:
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (error) {
NSLog(@"error:%@",error);
}
else
{
// retrive user's details at here as shown below
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *FBuser, NSError *error) {
if (error) {
// Handle error
}
else {
NSString *userName = [FBuser name];
NSLog(@"username===%@",userName);
NSLog(@"sesseion=%@",session);
}
}];
NSLog(@"FB user first name:%@",user.first_name);
userName=user.first_name;
NSLog(@"FB user last name:%@",user.last_name);
NSLog(@"FB user birthday:%@",user.birthday);
NSLog(@"FB user location:%@",user.location);
NSLog(@"FB user username:%@",user.username);
NSLog(@"FB user gender:%@",[user objectForKey:@"gender"]);
NSLog(@"email id:%@",[user objectForKey:@"email"]);
NSLog(@"location:%@", [NSString stringWithFormat:@"Location: %@\n\n",
user.location[@"name"]]);
userImageURL = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", [user objectID]];
NSLog(@"image=%@",userImageURL);
}
[self performSegueWithIdentifier:@"afterLogin" sender:nil];
}];
break;
}
} ];
}
答案 0 :(得分:2)
您正在推送UINavigationController
,但正在执行推送的viewController也应位于UINavigationController
内。由于错误表明没有UINavigationController
执行segue&#39; nextSport#39;
答案 1 :(得分:1)
您应该在图像中移动第二个(导航控制器)和第三个(具有下一个按钮的控制器视图)视图控制器的位置,因为当您单击下一个按钮时,没有导航控制器可供您执行推。