首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套推送动画,但没有推送?

嵌套推送动画,但没有推送?
EN

Stack Overflow用户
提问于 2012-11-15 01:47:06
回答 1查看 1.2K关注 0票数 0

当我试着预编一个单词时,我会收到这个错误.

代码语言:javascript
复制
2012-11-14 20:24:54.133 MyApp[26266:c07] nested push animation can result in corrupted navigation bar
2012-11-14 20:24:54.486 MyApp[26266:c07] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2012-11-14 20:24:54.487 MyApp[26266:c07] Unbalanced calls to begin/end appearance transitions for <SheetDrillDownViewController: 0xa1bb980>.

下面是我的设置:初始视图->下一个视图(UITableView) ->最后一个视图(UITable)

每个单元格推送到另一个视图,直到最后一个视图。我没有情态格,我有一个推格.我把推子从单元格链接到下一个视图,每个都有不同的名字.在我的selectedRowAtIndex方法中有一个执行segue行。我试过移除那个方法,人们说我正在双倍调用segue,但是当单击时,单元格变成蓝色,不会推到任何地方……如何纠正此错误?谢谢。

这是我的代码:

代码语言:javascript
复制
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath) {
    [self performSegueWithIdentifier:@"subjectDrillDown" sender:nil];
    }
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"Attempting to identify segue...");
    // Make sure we're referring to the correct segue
    if ([[segue identifier] isEqualToString:@"subjectDrillDown"]) {

        NSLog(@"Segue has been identified...");
        // Get reference to the destination view controller
        SubjectDrillDownViewController *vc = [segue destinationViewController];
        NSInteger selectedIndex = [[self.tableView indexPathForSelectedRow] row]; 
        NSMutableDictionary *object = [tableDataSource objectAtIndex:selectedIndex];
        NSString *key = [object valueForKey:@"key"];
        [vc setSelectedItem:key];

        NSLog(@"Switching to %@ detail view...",key);
        NSLog(@"Passing dictionary to %@ view... (Source below)\n\n %@",key,[NSString stringWithFormat:@"%@", [tableDataSource objectAtIndex:selectedIndex]]);
        [vc setDetailDataSourceDict:[tableDataSource objectAtIndex:selectedIndex]];
    }
    else {
        NSLog(@"ERROR, DOUBLE CHECK SEGUE'S NAME!");
    }
}

我见过所有其他的堆叠溢出问题,但大多数正确的答案对我都不适用.

编辑:

下一个视图可以加载,但当我单击“后退”按钮时,突然又有两个视图.

更新:

我会试着贴出几次试图辨认出.NSLogs,但我的编译器突然无法运行:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-15 02:31:09

如果您已经像下一个视图单元格一样配置了didSelectRowAtIndexPath,那么您肯定不需要在->中执行segue。

但是,从那里删除调用不起作用,那么您可以尝试segue从视图控制器(ctrl+drag从视图区域)到下一个视图,并将segue调用保持在didSelectRowAtIndexPath中。

我总是使用下列方法之一

方法1:

UITableViewCellNext View Controller

代码语言:javascript
复制
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Nothing
}

方法2:

Main View ControllerNext View Controller

代码语言:javascript
复制
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [self performSegueWithIdentifier:@"subjectDrillDown" sender:nil];
}

您所得到的错误是因为您有segue,并且在选择时手动执行segue -因此,它将导致嵌套的push动画

确保segue的名称是正确的,并且只使用上述方法之一。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13390421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档