becomeFirstResponder第二次不显示键盘(ios 6 + storyboard)

Jar*_*sen 7 iphone xcode objective-c storyboard ios

我有一个故事板,其中包括视图之间的导航.来回,也有可能一直跳到主屏幕.

基本上,它的工作原理如下:

  • 视图1显示了一个简单的菜单.
  • 视图2显示输入字段并自动显示键盘.
  • 视图3显示结果表.在此视图中,可以退后一步(查看2)或返回主屏幕(视图1).

当用户从视图1移动到视图2时,键盘和一切都很好地工作.但是,当从视图3移动到视图2,或从视图3移动并从头重新开始时,键盘不显示.

在代码中,我在viewDidAppear方法中成为了FirstResponder.此外,它将在加载视图3时resignFirstResponder.另一个有趣的事实是,当第二次调用becomeFirstResponder时,它确实返回NO(当它第一次返回YES时).此外,当返回到此视图时,即使文本字段是userInteractionEnabled,也无法选择文本字段.

我真的被困在这里,所以任何帮助都非常感谢.我已经看到了几个类似的问题,但没有找到解决方案:

Jar*_*sen 8

我能够在我的代码中找到问题所在.自己回答这个问题,因为它也可能对其他人有所帮助.

我的问题是我没有真正得到正确的事件顺序.我有一个按钮可以移动到下一个文本字段,如果一切都完成,它将移动到下一个屏幕.这导致在切换到新屏幕时调用并且不释放(第一个响应第一个响应者)方法.

我想我能给出的主要建议(至少最终对我有用),只是通过所有的becomeFirstResponder并确保在移动到下一个屏幕之前发布它.