UINavigationController 用另一个改变子视图
Posted
技术标签:
【中文标题】UINavigationController 用另一个改变子视图【英文标题】:UINavigationController change child view with another 【发布时间】:2010-07-29 14:52:28 【问题描述】:我在导航控制器中有以下结构
RootViewController
|
|--FirstViewController
|
|--SecondViewController
如何在不显示RootViewController
的情况下直接从FirstViewController
跳转到SecondViewController
。我想在FirstViewController
的 NavigationBar 上添加一个按钮,例如“转到 SecondViewController”。
【问题讨论】:
【参考方案1】:在相应按钮的操作方法中,初始化SecondViewController
,然后组装一个由两个元素组成的NSArray:RootViewController
和新初始化的SecondViewController
(按此顺序,即Root
在索引0和@ 987654326@ 在索引 1)。
然后调用 NavigationController 的 setViewControllers:animated:
方法,并将视图控制器数组作为第一个参数传递。请记住在调用此方法后release
SecondViewController
,或在初始化时autorelease
,以避免内存泄漏。
澄清一下,这将导致 FirstViewController
被 NavigationController 释放。
示例:
- (void) goToSecondViewController
RootViewController *root = [[self.navigationController viewControllers] objectAtIndex:0];
SecondViewController *second = [[[SecondViewController alloc] init] autorelease];
NSArray *controllersArray = [NSArray arrayWithObjects: root, second, nil];
[self.navigationController setViewControllers:controllersArray animated:YES];
参考:UINavigationController Class Reference
【讨论】:
今天是否保持最新状态? (2012 年 6 月)我不是在问这是否可行,而是在问当前的 SDK 是否不赞成这样做。以上是关于UINavigationController 用另一个改变子视图的主要内容,如果未能解决你的问题,请参考以下文章