【发布时间】:2014-12-07 22:18:47
【问题描述】:
我正在构建一个 iOS 应用程序。我已经在我的应用程序中实现了 Facebook 和 twitter 集成。
我在 viewcontroller 中遇到问题,我有按钮 Next 并实现了 push segue 在该按钮上继续下一个视图,但是当我单击“下一步”按钮并出现错误时,我的应用程序崩溃了。
错误:由于未捕获的异常“NSGenericException”而终止应用程序,原因:“找不到用于 segue 'nextSport' 的导航控制器。只有当源控制器由 UINavigationController 的实例管理时,才能使用推送 segue。'
这是故事板的屏幕截图:
上一张图片:
添加了当前(新)图像:
这是我的代码:
- (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;
}
} ];
}
【问题讨论】:
-
源视图控制器(带有“下一步”按钮的那个)需要嵌入到导航控制器中才能使用推送segue
-
用户已将问题从关于单击按钮时崩溃的问题完全更改为关于如何在 facebook 登录请求后显示 viewController 的问题。这是 2 个完全不相关的问题,应该单独提出,不要改变它并要求当前回答的人也解决这个问题
-
@Simon 不,我的问题没有解决。
-
@Daljeet 您提出的原始问题已解决。 3 小时前,您编辑了问题以包含此 Facebook 代码。您的问题是为什么我的应用程序崩溃以及如何修复它。已经回答了,这个问题目前是 2 个问题合并为一个,这不是使用 stackoverflow 的方式。这就是为什么我投票赞成关闭这个问题。如果您想问另一个问题,请随时这样做。但是从一开始就包括整个问题,并且在人们帮助您之后不要改变上下文
标签: ios objective-c uinavigationcontroller segue crash