我有一个tableview,我创建了一个segue,将其推送到另一个视图控制器。现在每一个这个segue在没有我接触的情况下打破我可以保证。我甚至没有编辑我放入的文件。
我的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *acell = [tableView cellForRowAtIndexPath:indexPath];
[self performSegueWithIdentifier:@"cellWasSelected" sender:acell];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"cellWasSelected"])
{
if ([sender isKindOfClass:[UITableViewCell class]])
{
UITableViewCell *selectedCell = sender;
ViewController *myDetViewCont = segue.destinationViewController;
myDetViewCont.navigationItem.title = selectedCell.textLabel.text;
}
}
}
首先点击一个单元格后,xcode会将我指向这个segue推送到的文件。
它将我重定向到这里:action:@selector(handleSingleTap:)];
我使用它来拍摄我的图片:[self.navigationController popToRootViewControllerAnimated:YES]
如果我在主题1中选择我的主视图,我发现问题是:
[self performSegueWithIdentifier:@"cellWasSelected" sender:acell];
但问题是我用过这么多次这个问题并且在没有我改变的情况下开始崩溃。
答案 0 :(得分:4)
您的代码没有任何错误,问题出在其他地方。可能是你没有在界面构建器中给segue一个标识符。试试这个代码。它正在我这边工作,如果你的文件没有任何问题,它也应该在你身边运行。
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString* identifier = [segue identifier];
if ([identifier isEqualToString:@"cellWasSelected"]) {
NSLog(@"Performing Seque");
if ([sender isKindOfClass:[UITableViewCell class]]) {
NSLog(@"correct");
UITableViewCell *selectedCell = sender;
UIViewController* myDetViewCont = segue.destinationViewController;
myDetViewCont.navigationItem.title = selectedCell.textLabel.text;
}
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%@",@"Cell Selected");
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
[self performSegueWithIdentifier:@"cellWasSelected" sender:cell];
}
P.S。如果您仍然遇到问题,那么您可能不熟悉故事板,并且需要足够的知识来处理它们。 http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1