【发布时间】:2026-02-15 17:50:02
【问题描述】:
根据我的项目设计,导航堆栈的结构如下: 启动画面 -> 主页 -> 活动列表 -> 活动详情
现在,我使用 URL 称为“主页”页面的自定义 URL。 所以,我想改变导航堆栈结构,如下所示: 启动画面 -> 主页
据我所知,我的代码面临一些内存问题:
我可以编写只能到达堆栈的代码,例如:Splash -> Home -> Home -> Home -> ...。等等,每当我使用自定义网址时。
否则,使用 popToviewController 我可以像这样到达堆栈: Splash -> 主页 -> 主页
但是,推送成功了,但是视图没有改变。
代码如下:
navigationArray = [[NSMutableArray alloc] initWithArray: self.nav.viewControllers];
for(int k=[navigationArray count]-1;k>=0;k--){
if ([[navigationArray objectAtIndex:k] isKindOfClass:[Home class]]){
//UIViewController *controller=[navigationArray objectAtIndex:k];
id obj=[navigationArray objectAtIndex:k];
[[self nav] popToViewController:obj animated:YES];
}
}
if(IS_IPAD)
class=[[Home alloc] initWithNibName:@"Home_iPad" bundle:Nil];
else
class=[[Home alloc] initWithNibName:@"Home" bundle:[NSBundle mainBundle]];
[self.nav pushViewController:class animated:YES];
NSLog(@"Finally, In Nav: %@", [self.nav viewControllers]);
打印如下:
"Splash: 0xcea0c70",
"Home: 0xd193400",
"Home: 0xd470600".
即Splash -> Home -> Home。 但是,模拟器显示 Home:0xd193400 而不是 Home:0xd470600。为什么?
【问题讨论】:
-
您的问题不清楚。我认为如果你能重新表述你的问题会更好。
-
在您推送编辑列表视图控制器的位置添加您的代码
-
请查看我发布的代码,并回答我任何你知道的问题。
-
@Naga OP 在帖子末尾清楚地提出了一个问题。推送发生了,但未显示推送的视图。 IE。显示“主页:0xd193400”而不是“主页:0xd470600”。我不知道为什么会这样。
-
@UdanPirappu,这就是为什么我要求他提供更多信息。他只是要求通过查看他发布的代码来给出答案。如果你明白什么是问题,你可以向我解释。另请解释这是什么意思“显示“主页:0xd193400”而不是“主页:0xd470600”
标签: objective-c ios7