我在iOS 9中遇到了一个非常不幸的错误。看来当你设置UITextField.inputAccessoryView
时,该视图的viewWillDisappear:
和viewDidDisappear:
方法会过早地被调用(当时键盘完成动画制作。)
我已经加了一个gif来证明这个问题。当视图变为红色时,它的viewWillDisappear:
方法被调用。奇怪的是,当您关闭键盘时,会再次调用viewWillDisappear:
和viewDidDisappear:
。但是,viewWillAppear:
只被调用一次。
有没有人遇到类似的问题?我使用viewWillDisappear:
和viewDidDisappear:
来关闭控制器,显然早期的通话会导致不必要的行为。
注意:以下是我创建和设置附件视图的方法。 AccessoryViewController.m中没有什么值得注意的。在一个干净的项目中重现了这个问题。它在iOS 8上不存在。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (self.textField.inputAccessoryView == nil) {
self.textField.inputAccessoryView = self.vc.view;
}
return YES;
}
- (UIViewController *)vc {
if (!_vc) _vc = [[AccessoryViewController alloc] init];
return _vc;
}