我目前正在为使用标签栏的iphone编写应用程序。它链接到的一个视图使用导航控制器,以便我可以向下钻取我用来向用户显示信息的表视图。一切正常我可以向下钻取表视图没问题,我可以将当前表视图从视图堆栈中推出,并使用导航栏中的后退按钮将堆栈返回到第一个视图。
我遇到的问题是,如果我向下钻取超过1个视图级别并按下该视图的标签栏按钮,则应用程序退出,Xcode显示EXC_BAD_ACCESS。
标签栏按钮显然是试图跳回到堆栈中的第一个视图,但它应该这样做吗?
如果是这样,如何让按钮从堆栈中推送所有内容,或者是否可以从该视图中禁用标签栏按钮以尝试再次显示顶视图?
如果用户意外点击按钮,整个应用程序返回第一个视图并不是理想的。
任何帮助表示赞赏:)
答案 0 :(得分:0)
我在视图对象上设置了自动释放集,我试图从标签栏链接回来,并且没有注意到我也在dealloc方法中也释放了相同的对象。因此,当我第一次单击选项卡查看视图时,它仍然在内存中,但是当返回到视图时,其保留计数已设置为零,将其从内存中完全删除。
通过删除dealloc方法中的release cal来解决它。或者,删除自动释放也会做同样的事情。