【发布时间】:2011-08-13 23:29:50
【问题描述】:
我有一个使用 UINavigation 的游戏设置屏幕,并且在有人选择颜色后尝试重置或清除 UINavigation。
下图最好地描述了我的应用的当前流程:
Start application -> New game -> Pick character -> Pick Color -> Start game
直到“选择颜色”我使用uinavigation,但是当挑选颜色时,我想清除uinavigation历史记录。
这样做的原因是,一旦您开始游戏,您就无法返回,并且希望 UINavigation 以干净的状态恢复,而没有任何迹象表明您可以返回(这也包括返回main menu 屏幕)。
我现在的做法是这样的;
[self.navigationController popToRootViewControllerAnimated:YES];
GameDashboardVC *dashboard = [[GameDashboardVC alloc] initWithNibName:@"GameDashboardVC" bundle:nil];
dashboard.title = @"Dashboard";
dashboard.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:dashboard animated:YES];
[dashboard release];
问题是它弹出到 rootViewController 但它从不将仪表板推送到堆栈上。
我试过了:
[self.parentViewController.navigationController pushViewController....]
我唯一没有尝试过的是将仪表板推送放在根视图控制器本身,但我很担心,因为我不确定它是否应该在那里。
因此,放置此类功能的正确位置在哪里,以及如何清除 UINavigation 的堆栈。
感谢您的时间/帮助。
【问题讨论】:
-
检查你的 UINavigationController viewControllers 属性并扔掉你不想要的?
标签: objective-c uinavigationcontroller history