Ios 将视图推入当前根视图下方的堆栈

Ios 将视图推入当前根视图下方的堆栈,ios,uinavigationcontroller,Ios,Uinavigationcontroller,我正在尝试实现一个类似日历的界面,带有左箭头和右箭头,允许用户在时间上向后/向前滚动。为此,我使用了一个导航控制器,并在堆栈上推/弹出视图 但是,如果我当前正在查看根视图,并且如果我试图向后导航,我无法弹出视图以获得正确的动画方向,该怎么办 上周我发现了一篇关于堆栈溢出的帖子,它演示了一种方法,将新视图推送到当前根视图下的堆栈上,从而允许弹出根视图。这只是几行代码——主要是获取堆栈中当前项的数组,并以某种方式将新视图推到当前活动视图的下方。不幸的是,我似乎再也找不到那个特别的帖子了 有没有人遇到

我正在尝试实现一个类似日历的界面,带有左箭头和右箭头,允许用户在时间上向后/向前滚动。为此,我使用了一个导航控制器,并在堆栈上推/弹出视图

但是,如果我当前正在查看根视图,并且如果我试图向后导航,我无法弹出视图以获得正确的动画方向,该怎么办

上周我发现了一篇关于堆栈溢出的帖子,它演示了一种方法,将新视图推送到当前根视图下的堆栈上,从而允许弹出根视图。这只是几行代码——主要是获取堆栈中当前项的数组,并以某种方式将新视图推到当前活动视图的下方。不幸的是,我似乎再也找不到那个特别的帖子了

有没有人遇到过同一个链接,或者可以为我指出正确的方向?早些时候,我的电脑工作正常,由于电脑故障,我丢失了一些工作

编辑:

通过一些实验,我已经部分工作了

// 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,每次我向前看,然后返回到前一个视图,它似乎会向数组添加一个额外的视图,以后不会被删除。这将暂时起作用,但希望我能解决这个问题。


我想你说的是
@属性(非原子,复制)NSArray*viewControllers

引用参考文献:

讨论
根视图控制器位于数组中的索引0处,后视图控制器位于索引n-2处,顶部控制器位于索引n-1处,其中n是数组中的项目数。
将视图控制器的新数组指定给此属性相当于调用SetViewController:animated:方法,并将动画参数设置为NO

这就是你要找的信息吗


对于你想要做的事情,你可以考虑一些事情。

从查看:到查看:持续时间:选项:完成:
使用给定参数在指定视图之间创建过渡动画


我想你说的是
@属性(非原子,复制)NSArray*viewControllers

引用参考文献:

讨论
根视图控制器位于数组中的索引0处,后视图控制器位于索引n-2处,顶部控制器位于索引n-1处,其中n是数组中的项目数。
将视图控制器的新数组指定给此属性相当于调用SetViewController:animated:方法,并将动画参数设置为NO

这就是你要找的信息吗


对于你想要做的事情,你可以考虑一些事情。

从查看:到查看:持续时间:选项:完成:
使用给定参数在指定视图之间创建过渡动画


朝着正确的方向前进。你能看看我上面的编辑吗?谢谢朝着正确的方向前进。你能看看我上面的编辑吗?谢谢代码在哪里,它在生命周期的什么方法中?当您弹出时,您将返回到哪里,到根目录或其他地方?代码在哪里,在生命周期的哪个方法中?当你跳的时候,你要回到哪里,回到根或者其他地方?