我有一个从桌面视图开始的Nav控制器。每行都会推送到细节UIView。我想在Detail UIView上有一个“下一步”按钮,它会弹出当前视图,并使用相同的视图控制器打开父UITableView上下一行对应的按钮而不返回TableView。理想情况下,它会使用一些幻灯片或幻灯片动画。
思想?
答案 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];
这很好地动画了页面过渡。