首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在删除键盘后恢复UIInputViewController self.view?

如何在删除键盘后恢复UIInputViewController self.view?
EN

Stack Overflow用户
提问于 2015-04-21 13:24:49
回答 1查看 738关注 0票数 5

我正在开发一个具有键盘扩展的应用程序,在键盘扩展的某些用途(例如:当我使用开关键盘按钮时),扩展是通过viewDidDisappear进行的,在这种情况下,我知道我可以清理键盘,它可以用它的所有视图和内存被释放。在其他用途(例如:当使用Notes应用程序并按So /Back按钮时),扩展通过viewWillDisappear,而不是通过viewDidDisappear,,因此在本例中,我没有清理键盘,因为它没有到达我的清理方法,因此它没有被释放。

在这一点上,我希望当我返回到键盘时,返回到便笺,例如,我将收到前面带有我已经构建的视图的UIInputViewController

不幸的是,此时isViewLoaded()方法返回false,而我的UIInputViewController再次遍历loadView方法,因此再次构建所有视图,结果应用程序内存增长,直到某个时候我到达了讨厌的didReceiveMemoryWarning方法回调。

我想以某种方式恢复首先初始化的UIInputViewController中为我的键盘创建的视图。有人知道这是可能的吗?怎样才能做到这一点?

我正在查看restorationIdentifier来完成这个任务,如果我错了,请纠正我,但这是与普通UIViewController一起使用的,不能与UIInputViewController一起使用,因为不是我的AppDelegate负责启动它。

更新

根据我的进一步研究,我得出结论:无论你做什么手术:

  1. 在Notes应用程序中使用Done/Back按钮。
  2. 切换到消息应用程序,并在那里使用键盘。
  3. 使用“切换键盘”按钮

在其他情况下,-- UIInputViewController类--总是经过init方法

根据我对面向对象编程的理解,这意味着无论谁调用我的键盘来收割,都会使用构造函数来完成它,并且基本上创建了一个新的键盘实例。这意味着,在任何行为中,在第一次重新显示键盘时,我都不会有可用的视图,而且我总是必须为新实例构建键盘视图,并清理旧的实例。是这样的吗?或者有一种保存UIInputViewController?视图的方法。

EN

回答 1

Stack Overflow用户

发布于 2016-05-13 16:30:58

除非您在键盘上使用自己的自定义应用程序来存储其上一个实例,否则无法做到这一点。在您设计的自定义应用程序之外的所有东西中,它都超出了您的范围。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29773505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档