【发布时间】:2018-05-30 14:00:15
【问题描述】:
iOS 11.2、Xcode 9.2
我已经尝试了所有方法来关闭旧UIViewController 上的viewDidDisappear 上的键盘之后一个新的UIViewController 被推入UINavigationController 堆栈。但没有运气。
如果我在 viewWillDisappear 上关闭它 - 它会被关闭,但带有动画 DURING 推送动画。这不是期望的行为。我希望仅当控制器不再可见时才关闭旧的UIViewController 键盘。
行为应该类似于 Telegram 应用中的行为:
在任何带有可见键盘的对话框中按下对手头像,您将被推送到对手的帐户信息。然后,如果您按下后退按钮,您将被重定向回一个对话框。但是键盘已经关闭了。
感谢任何帮助!
附:该问题可能看起来像是重复的,但我未能使其与我找到的解决方案一起使用。
编辑 1.
我创建了一个小的TEST PROJECT,它表示未能实现所需的行为。
为了重现不良行为:
- 启动应用程序。
- 点击
UITextField或UITextView并等待键盘出现。 - 点击“下一步”按钮并等待新控制器被按下。
- 点击“返回”按钮并等待弹出新控制器。
因此 - 初始视图控制器将在推送/弹出操作后拥有活动键盘。我需要在按下/弹出操作后隐藏键盘。此外,在初始视图控制器不可见之前不应关闭键盘,应在viewDidDisappear 操作后关闭。
【问题讨论】:
标签: ios uiview uiviewcontroller first-responder uiresponder