何故だかよくわかっていない不可思議なエラー(勉強不足なだけかもw)が発生したので備忘録的に記録。

NavigationController にて下位のコントローラーへpushしたとき、下位コントローラーに配置したUITextFieldに文字を入力したときの挙動がおかしくなった。

具体的には文字を入力すると、1文字打つごとに正しい位置に表示されたり、UITextFieldのFrame.Origin.yよりも少し下(UITextFieldから完全に外れた状態)の方に表示されたりした。

コード的には何も問題がないと思っていたので、正常に稼働している他のコントローラーと比較して、一つずつ照らし合わせをした。
その結果、下記の記述を加えることで元に戻った。

textField.borderStyle =UITextBorderStyleRoundedRect;

問題なのは、borderStyle

これをUITextBorderStyleBezelやUITextBorderStyleLineにすると位置ずれが発生する。

結局のところ、何故UITextBorderStyleRoundedRectじゃないと正しく入力できないのかわかっていないが、一応対応できたものとする。
※同一アプリ内にて、他のコントローラーにて同様に下位コントローラーにUITextFieldを配置しているものがあるが、それについては何も問題が起きなかった(UITextBorderStyleBezelやUITextBorderStyleLineに設定しても位置ずれは起きなかった)
NavigationControlelrの何かが悪さしていると思われるが特定できておらずw