我UIViewController
覆盖了inputAccessoryView
自定义UITextView
,让我们调用该视图控制器A.我还有另一个视图控制器将A推送到导航堆栈。
所以,当我第一次按下A时一切正常 - UITextView
立即显示文字。奇怪的是从下一次推送开始 - UITextView
的文本在视图控制器推送过渡动画结束之前不会出现。
viewController A的代码在那里:
class NextViewController: UIViewController {
private var userInputView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.grayColor()
let textView = UITextView(frame: CGRect(origin: .zero,
size: CGSize(width: 200, height: 30)
), textContainer: nil)
textView.text = "asd"
userInputView = textView
}
override var inputAccessoryView: UIView? {
return userInputView
}
override func canBecomeFirstResponder() -> Bool {
return true
}
}
在iOS 9.3模拟器中测试。
经过一些编码后,我注意到如果inputAccessoryView
未被释放(存储在全局范围内的某处),则动画中的外观由最后实际上是好的。但是,有没有任何类似本机的解决方案,我错过了什么?因为在我看来,期望的行为是相当标准的。UITextView
状态定义。但这个解决方案对我不好
答案 0 :(得分:0)
所以我会坚持使用存储inputAccessoryView
的解决方案直到下一次出现。