6

私は現在、を使用してアプリを構築していUIPageViewControllerます。UITextField の数を含む最後のページに到達するまで、期待どおりに機能しています。

しかし、UITextField のインスタンスの 1 つをタップすると、キーボードが表示される代わりに、理由もなく突然前のページにジャンプします。最後のページまでスクロールしてテキスト フィールドをもう一度タップすると、問題なく動作します。

また、最後のページにリンクし、UIPageViewController インスタンスにアタッチされているナビゲーション ボタンをタップして、すぐに最後のページを表示しても問題ありません。

この問題は、ページを最初から最後までスクロールしたときにのみ発生し、最初の試行で 1 回だけ発生します。

メモリ不足の問題が疑われたためdidReceiveMemoryWarning、UIPageViewController インスタンスと最後のページ ビュー コントローラーの両方のメソッドにブレークポイントを設定しました。しかし、彼らは決して呼ばれませんでした。

2番目の試行は、最後のページビューコントローラーの-willMoveToParentViewController:メソッドにブレークポイントを追加し、その条件をに設定することですparent == nil(問題のUIPageViewControllerインスタンスである親ビューコントローラーから削除されたとき)

アプリを実行すると、ブレークポイントのコール スタックは、メソッドが UIPageViewController によって呼び出されたことを示しています-_flushViewController:animated:

この -flushViewController:animated: が呼び出される理由がわかりません。原因が分かれば、問題の解決に役立ちます。

私を助けてくれる人はいますか?

4

2 に答える 2

0

ここで答えを見つけました:

UIPageViewController 内に UITextview を実装できません

クレジットは完全に彼にあります。

動作確認できました。ビューコントローラーで行ったことは次のとおりです。

//TextField
    UIScrollView *textFieldScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, width, height)];
    textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, width, height)];
    [textField setText:@""];
    [textField setBackgroundColor:[UIColor whiteColor]];
    [textField.layer setCornerRadius:5.0f];
    [textField setDelegate:self];

    [textFieldScrollView addSubview:textField];
    [_someView addSubview:textFieldScroll];

魅力のように機能します。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-08-19T06:08:23.157 に答える