弹出UINavigationController时崩溃

时间:2012-02-12 16:39:31

标签: uinavigationcontroller popup stack crash

我有几个由导航控制器控制的viewControllers。

例如,viewController A和viewController B都可以将viewController C推入导航堆栈并要求C进行一些保存(实际上与C相同)。

在C的保存方法中,最后一行代码是

[self.navigationController popViewControllerAnimated:YES];

但问题是,

如果我从A推送到C,在我保存了一些内容并弹回A后,事情进展顺利。

但是,如果我将C推送到B,在我做同样的事情并弹回B之后,应用程序崩溃了,

通过我的调试,我发现应用程序没有在C的代码中崩溃,

但在B的viewWillAppear方法之后,这里我的意思是,B正确运行viewWillAppear中的所有代码,

然后在我不知道如何追踪的地方崩溃。

错误对我来说很奇怪:

2012-02-13 00:29:30.975 EasyWallet[43116:707] *** Terminating app due to uncaught exception     
'NSInvalidArgumentException', reason: '*** -[__NSCFConstantString stringByAppendingString:]: nil argument'
*** First throw call stack:
(0x344268bf 0x346761e5 0x344267b9 0x344267db 0x35d72121 0x2ce7b 0x2ba75 0x3782f9cb 0x3782eaa9    
0x3782e233 0x377d2d4b 0x3438522b 0x34f16381 0x34f15f99 0x34f1a11b 0x34f19e57 0x34f11d85    
0x343fab4b 0x343f8d87 0x343f90e1 0x3437c4dd 0x3437c3a5 0x30c00fcd 0x377fd743 0x2179 0x2138)
terminate called throwing an exception(gdb) 

我只是不知道如何解决它。

1 个答案:

答案 0 :(得分:1)

在处理viewControllers和视图的数量时,会发生频繁崩溃。不使用ARC时我也有同样的问题。那时我发现最好的方法是使用以下链接进入精确崩溃。唯一的问题是你需要在控制台上仔细分析结果,并且应该更好地判断...

http://www.cocoadev.com/DebuggingAutorelease.html