我有一个导航控制器,它们之间有一个名为“addSegue”的segue链接。当我点击tableView
单元格时应用程序崩溃,我收到以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<MSAddFriendsViewController: 0x98cc340>) has no segue with identifier 'addSegue'
我认为我的代码没有任何问题。这是我有一行showSegueWithIdentifier
:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSMutableSet *selectedUsers = [NSMutableSet set];
[self.tableView deselectRowAtIndexPath:indexPath animated:NO];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
PFRelation *friendsRelation = [self.currentUser relationforKey:@"friendsRelation"];
PFUser *user = [self.allUsers objectAtIndex:indexPath.row];
[friendsRelation addObject:user];
[self.currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (error) {
NSLog(@"Error %@ %@", error, [error userInfo]);
} }];
[self performSegueWithIdentifier:@"addSegue" sender:self];
}
答案 0 :(得分:16)
我有同样的问题,实际上我的问题是我正在打电话
WRONG: [self.navigationController performSegueWithIdentifier:@"ShowVerify" sender:self];
而不是
CORRECT: [self performSegueWithIdentifier:@"ShowVerify" sender:self];
因此请检查您是否正在调用performSegueWithIdentifier方法:)
答案 1 :(得分:11)
use segue identifier in Push Method and give the proper connection
如果您使用Identifier
,请在需要
[self performSegueWithIdentifier:@"identifierName" sender:self];
Swift 2.X
self.performSegueWithIdentifier("identifierName", sender: self)
Swift 3
self.performSegue(withIdentifier: "identifierName", sender: self)
关于新屏幕,你已经添加了这种方式。在那个屏幕上,当你完成并想要删除它时,它只是:
self.dismiss(animated: false, completion: nil)
答案 2 :(得分:6)
很难肯定地说,但是其他一些人也有类似的问题:
在this question中,提问者实例化故事板
init
代替instantiateViewControllerWithIdentifier
所以{。}}
segue没有正确设置。
在this question中,这只是奇怪的事情 内部使用xcode和模拟器,并运行Product-&gt; Clean 帮助
当然,代码中的segue名称可能与Storybord上的segue名称不匹配,但我猜你已经检查过很多次了!
< / LI>答案 3 :(得分:0)
检查头文件中是否存在UIKIT。我在不知不觉中使新VC成为View Controller的子类。