首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UINavigationController时髦

UINavigationController时髦
EN

Stack Overflow用户
提问于 2013-02-21 22:38:06
回答 2查看 69关注 0票数 0

我目前正在使用这个指南,这样我就可以用另一个视图控制器替换根控制器了。http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller%E2%80%99s-root-view-controller/

目前,我已经在我的应用程序中记下了这一点。

考虑以下场景,查看A(根) ->视图B

在视图B中,有一个名为firstLine (在viewDidLoad中设置为YES )的布尔值,用于解析算法。当我们第一次进入视图时,该算法工作得很好。( ->视图B)

然而,这个新场景破坏了我的解析算法,

查看A ->视图B(按下) ->视图A ->视图B(中断)

当我们第一次进入视图时,布尔值(firstLine)应该设置为YES,这是一个奇怪的交替。我开始相信第一个视图B仍然在后台运行;因此,我尝试了popViewController,但这并没有真正起作用。它给了我一个黑色的屏幕,这显然是我不想要的。

有什么想法吗?

编辑:已解决的

原来我使用的是一个NSTimer,它一直在自己运行。因此,当我离开视图时,我不得不使它失效。

EN

回答 2

Stack Overflow用户

发布于 2013-02-21 23:08:29

看看这个问题的答案,Looking to understand the iOS UIViewController lifecycle,这将帮助您确定何时在您的视图中设置您的标志,以及从一个UIView到另一个UIView发生了什么。

票数 0
EN

Stack Overflow用户

发布于 2013-02-21 23:45:15

代码语言:javascript
复制
[self.navigationController setViewControllers:myPreparedNewVCsStack 
animated:YES];

您可以筛选、移动和替换任何视图控制器:

代码语言:javascript
复制
NSMutableArray *tempStack = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];

[tempStack filterUsingPredicate:[NSPredicate predicateWithFormat:@"class != %@", [AViewController class]]]; // the predicate can be even @"firstEnter == YES"

您在新堆栈中的最后一个视图控制器将是顶部的!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15013577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档