我正在尝试在我的应用程序中使用“ iPhone上的半模式(透明)对话框”的代码在Ramin.firoozye.com上实现部分叠加模式。覆盖功能有效,并将模式滑入视图,但是从模态控制器调用任何IBACTION会导致“未识别的选择器发送到实例”崩溃。

我通过隔离该代码重新创建了基本功能,并且触发了相同的错误。要看看我在说什么,你可以 在这里下载测试项目.

我敢肯定,我只是在这里缺少一些简单的东西。任何帮助将不胜感激。

有帮助吗?

解决方案

在testViewController displayModal中显示MODALVIEWCONTROLLER时,您会发布ModalController(第20行)。不要这样做 - 您需要ViewController才能保持生命。如果您发布它,则只有视图保持生命(如将其添加为子视图时保留时,它将保留)。

另外,在ModalViewController hideModaled中,您释放您没有保留的ModalView,因此我也会删除该模型。

因此,现在您只需要在删除视图后仅发布模量controller的实例。您可以通过[自行释放]来做到这一点;在HideModaled中,但这似乎是一种不寻常的模式,我做得不好。

一些建议:

  • 将节目和隐藏方法保留在同一类中。
  • 与控制器保持ivar。
  • 另一种可能性:完全删除ModalViewController,并将所有内容都放入TestViewController中 - 但这在很大程度上取决于真实的事情将要进行多少操作。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top