我尝试实现类似界面的日历,左箭头和右箭头允许用户及时/向前滚动。为此,我使用导航控制器,并在堆栈上推送/弹出视图。
但是,如果我目前正在查看根视图,如果我试图及时导航,我无法弹出视图以获得正确的动画方向,该怎么办? / p>
我上周在Stack Overflow上发现了一篇文章,演示了一种方法,将新视图推送到当前根视图下方的堆栈上,从而允许弹出根视图。它只是几行代码 - 主要是获取堆栈中当前项的数组,并以某种方式将新视图推送到当前活动视图下方。不幸的是,我似乎无法再找到那个特定的帖子......
是否有人发生过相同的链接,或者可能指向正确的方向?我之前的工作正常,由于计算机故障导致我的工作失去了一些工作。
编辑:
通过一些实验,我有部分工作......
// create new view controller
ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
// add below root
NSMutableArray *allViews = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
[allViews insertObject:viewController atIndex:0];
[viewController release];
self.navigationController.viewControllers = allViews;
[[self navigationController] popViewControllerAnimated:YES];
[allViews release];
它似乎确实泄漏了内存,但是 - 如果我执行allViews数组的NSLog,每次我及时前进然后回到上一个视图,它似乎为数组添加了一个额外的视图#39;稍后取消。这将暂时有用,但希望我能解决这个问题。
答案 0 :(得分:1)
UINavigationController Class Reference
我认为你在谈论@property(nonatomic, copy) NSArray *viewControllers
引用参考文献:
<强>讨论强>
根视图控制器位于数组中的索引0处,后视图控制器位于索引n-2处,顶部控制器位于索引n-1处,其中n是数组中的项目数。
为此属性分配新的视图控制器数组等效于调用setViewControllers:animated:方法,并将动画参数设置为NO。
这是您要查找的信息吗?
对于您要做的事情,您可能会考虑使用UIView中的内容。
transitionFromView:toView:持续时间:选择:完成:
使用给定参数在指定视图之间创建过渡动画。