【发布时间】:2018-06-01 19:34:11
【问题描述】:
我在我的应用程序中遇到了一个错误,尽管我覆盖了输入附件视图,但第一个视图控制器中的 UIToolbar 出现在第三个视图控制器中。
第一个视图控制器:
class FirstViewController: BaseViewController {
@IBOutlet weak var toolbar: UIToolbar!
override var inputAccessoryView: UIView? {
return toolbar
}
...
第二个视图控制器:
class SecondViewController: BaseViewController {
override var inputAccessoryView: UIView? {
return nil
}
...
第三视图控制器:
class ThirdViewController: BaseViewController {
override var inputAccessoryView: UIView? {
return nil
}
...
我不确定是什么导致工具栏出现在第二个视图控制器中。这些视图控制器没有嵌入在 UINavigationController 中,所以我不明白它是如何转移到另一个屏幕上的。
【问题讨论】:
-
似乎有点奇怪 - 听起来像
FirstViewController永远不会辞去响应者的职务,因此输入附件视图“继续存在”。也许将resignFirstResponder()放入viewWillDisappear()放入FirstViewController? -
@DonMag 这确实有效,但我发现了另一种无效的情况。当我在 UINavigationController 中显示另一个视图控制器时,会出现之前两个屏幕的输入附件视图。这是一个非常奇怪的情况。