序列化 iPhone 导航控制堆栈

发布于 2024-11-14 09:38:41 字数 43 浏览 2 评论 0原文

我们可以序列化 iPhone 导航控制器的堆栈来保存状态吗?苹果允许吗?

Can we Serialize the iPhone Navigation controller's stack to save the state? Is it allowed by Apple?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千年*琉璃梦 2024-11-21 09:38:41

保存堆栈就像读取推送到导航控制器的控制器列表并序列化它们一样简单:

NSArray *myStack = [self.navigationController viewControllers]

我不记得 Apple 要求开发人员不要做这样的事情的明确指导方针。

Saving the stack is as easy as reading the list of controllers pushed to the navigation controller and serializing them:

NSArray *myStack = [self.navigationController viewControllers]

I can't remember explicit guidelines from Apple that require developers not to do such a thing.

橙幽之幻 2024-11-21 09:38:41

您能给我们更多提示吗?为什么要这样做?这是为了在导航控制器中保存用户选择吗?如果我是你,我会通过这样做来保存类名

[[myControllerObj class] description]

并将其保存在 NSUserDefault 之类的地方,稍后如果你想再次将其推送到堆栈,那么你需要

NSString* className = @"MyControllerClass";
MyControllerClass* obj = (MyControllerClass*) [[NSClassFromString(className) alloc];
[myNavigation pushViewController: obj];

希望帮助

:)

can you give us more hint, why you want to do that? Is this for saving the user selection in the navigation controller? If I were you, I would save the class name by doing

[[myControllerObj class] description]

and save it somewhere like NSUserDefault, later if you want to push it again to stack then you need

NSString* className = @"MyControllerClass";
MyControllerClass* obj = (MyControllerClass*) [[NSClassFromString(className) alloc];
[myNavigation pushViewController: obj];

hope helps

:)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文