画面の約半分を占める( IntroPages
) 内にUIPageViewController (それを呼び出すことができます) があります。内でスクロール可能にしたい 4 つのページがあります。、、およびのすべては、独自のニブで個別に実装されています。、フォームがある間は静的です(3 つの販売ページと、たとえばサインアップするためのフォームを想像してください)。ユーザーは簡単に、、およびリーチをスワイプできますが、ユーザーがテキストフィールドをタップすると( と呼びましょう)、完全に消えて表示され始めますUIViewController
IntroView
IntroPages
A
B
C
D
A
B
C
D
UIViewControllers
A
B
C
D
A
B
C
D
D
firstName
D
IntroPages
IntroPages
C
例外でも何でもなく。この時点で、ユーザーは からC
にD
もう一度スワイプできますが、今回はD
問題なく動作します。
追加情報:
- のデリゲートは
firstName
ですD
。 - NO を返すと
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
D
、最初から消えませんが、キーボードが表示されず、キーボードを表示する必要があります。 IntroView
また、 (UIViewController
を含むUIPageViewController
)をデリゲートにしようとしましfirstName
たが、それも機能しませんでした。つまり、同じ問題が発生しました。- ARCを使用しています
私の最初の考えは、それD
が何らかの形でリリースされているということでしたが、そうではありません。-dealloc
関数を作成し、そこにブレークポイントを配置しましたが、 Dが呼び出されるD
前に D が消えてしまいます。-dealloc
実際には、ユーザーがから2 回目に-dealloc
スワイプしたときにのみ が呼び出されます。これは、D の 2 番目のインスタンスが提供されたときに、D の最初のインスタンスの割り当てを解除していることを示しています。C
D
UIPageViewController