按下Next Detail UIView而不返回到父UITableView

时间:2010-08-31 20:16:20

标签: objective-c uitableview

我有一个从桌面视图开始的Nav控制器。每行都会推送到细节UIView。我想在Detail UIView上有一个“下一步”按钮,它会弹出当前视图,并使用相同的视图控制器打开父UITableView上下一行对应的按钮而不返回TableView。理想情况下,它会使用一些幻灯片或幻灯片动画。

思想?

3 个答案:

答案 0 :(得分:0)

我想出了这个。基本上,我加载下一个视图并将其推送到导航堆栈,然后从堆栈中删除当前视图。这是一个很难对对象引用进行编码的黑客攻击,但是它起作用并且动画效果很好。

以下是关键代码段:

答案 1 :(得分:0)

我想出了这个。基本上,我加载下一个视图并将其推送到导航堆栈,然后从堆栈中删除当前视图。这是一个很难对对象引用进行编码的黑客攻击,但是它起作用并且动画效果很好。

以下是关键代码段:

NSMutableArray *allControllers = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
        NSLog(@"Controller Count:%d", [allControllers count]);
        NSInteger backCount = 2;
        [allControllers removeObjectAtIndex:[allControllers count] - backCount];
        [self.navigationController setViewControllers:allControllers animated:NO];
        [allControllers release];



        [self.navigationController popViewControllerAnimated:YES];

答案 2 :(得分:0)

我这样做的方式:

// Push the blog view, but don't add to the stack by popping first.
[self.navigationController popViewControllerAnimated: NO];
[listViewController.navigationController pushViewController: detailViewController animated:YES];

代码中的listViewController是带有表视图的父视图。 detailViewController是您首先需要创建的,包含列表中下一个元素的详细信息。

如果你想回去,那就在桌面上,你需要稍微不同的代码:

// Fake a pop animation by pushing the controller, then pushing a dummy and popping back.
DummyController* dummy = [DummyController alloc];
[self.navigationController popViewControllerAnimated: NO];
[lListViewController.navigationController pushViewController: detailViewController animated:NO];
[detailViewController.navigationController pushViewController:dummy animated:NO];
[dummy.navigationController popViewControllerAnimated:YES];

这很好地动画了页面过渡。