iOS开发: viewControllers]的原因是什么? 会回来没有?
以下声明返回零…
NSArray *viewControllersInNavStack = [[self navigationController] viewControllers];
并且这个语句是在一个视图控制器中调用的,它在导航堆栈中大约有四个级别,所以我不明白它是如何或为什么会返回nil。 你的想法?
非常感谢你的智慧!
听起来不像你的问题,但文档说“如果视图控制器在其堆栈中,则仅返回导航控制器。如果找不到导航控制器,则此属性为零”。
首先检查[self navigationController]是否返回nil。 如果没有,则viewControllers]必须,但首先将其分解。
你在检查什么点? 很可能self.navigationController尚未被环境填充。 你能确认self.navigationController不是0x0吗?
如果是这样的话,你可以将你的代码从init(我假设你拥有它的地方)移到viewDidLoad;
我发现了问题。 响应ApplicationWillResignActive通知正在调用此语句。 好吧,堆栈上方的其他视图控制器之一也在监听相同的通知,并且其处理程序从堆栈中弹出视图控制器,以及堆栈中更深层次的所有其他视图控制器,包括执行上面代码的那个。 因此,在执行代码时,其视图控制器不再在堆栈中。
- 由于UIPopoverController,通用iOS应用程序在iPhone / iTouch 3.1.3上崩溃
- 为什么我的segue导致“无法识别的选择器发送到实例”NSInvalidArgumentException?
- 当webview大于屏幕时,将UIWebview内容转换为UIImage
- 如何取消用addOperationWithBlock创build的操作?
- 如何在iOS 11中设置UIBarButton大小以匹配iOS 10中的大小
- 使用vImageHistogramCalculation计算图像的直方图
- 代码签名错误:证书身份“iPhone开发人员:我的姓名(xxx)”在钥匙串中出现多次
- 坚持MPMediaItemCollection对象的方法? (从iPod中select)
- 从iPhonelogin:文件在哪里?
- 删除所有以某个词开头的NSUserDefaults
- iPhone KERN_INVALID_ADDRESS