在我的iOS应用程序中,整个用户界面以编程方式编码,即没有xib或故事板。一切正常,直到我通过UINavigationController添加另一个视图控制器。推送/弹出第二个视图控制器后,iOS UI会导致崩溃
第一个视图控制器运行良好,当第二个视图控制器被按下时,它也可以工作。但是在第二个视图控制器弹出自身并且第一个视图控制器重新出现之后,与用户界面的任何元素的任何交互都会使应用程序崩溃。
任何想法可能会导致此?
UPDATE:截图例外
在我的iOS应用程序中,整个用户界面以编程方式编码,即没有xib或故事板。一切正常,直到我通过UINavigationController添加另一个视图控制器。推送/弹出第二个视图控制器后,iOS UI会导致崩溃
第一个视图控制器运行良好,当第二个视图控制器被按下时,它也可以工作。但是在第二个视图控制器弹出自身并且第一个视图控制器重新出现之后,与用户界面的任何元素的任何交互都会使应用程序崩溃。
任何想法可能会导致此?
UPDATE:截图例外
有系统产生的应用程序崩溃时崩溃日志。所有的消息,以及栈回溯都在那里。
通过将设备连接到Mac,然后打开设备窗口和查看设备日志,您可以看到设备的崩溃日志。
但是,通过在设备上连接设备,然后在Xcode中构建和运行它,在Xcode中进行调试将变得更加容易。
当应用程序崩溃时(由于某种异常),Xcode可以捕捉到这一点,控制权将转移到调试器。
您可以在Xcode中添加一个异常断点以在发生异常时立即停止您的应用程序。
要添加异常断点,请切换到断点导航器。单击窗格底部的小按钮+,然后选择添加异常断点。
应用程序崩溃后,您可以查看堆栈回溯。调用堆栈中的前几个项目可能会在Apple的代码中,但是稍微远一些的将会是来自视图控制器的调用,显示发现问题的线。
至于什么是特别错误,它可能是任何数量的东西。除非您共享显示这些对象的属性以及它们在哪里(分配)的代码,否则我们无法专门提供帮助。
您的视图控制器很可能引用了一些已被释放的东西。您应该能够在调试器中运行应用程序,查看堆栈跟踪并确定问题。你问如何跟踪这个? –
@PetahChristian:是的;没有具体的错误信息,我不知道如何按照您的建议跟踪它。 – iSofia