0

テキストフィールドを表示するために使用されるinputAccessoryViewを持つVCがあります(メッセージアプリによく似ています)。このビューをナビゲーション スタックにプッシュすると、すべて正常に動作します。つまり、tableview がインセットを調整して、アクセサリ ビューの下に何もスクロールしないようにします。ただし、そのビューから同じビュー コントローラー クラスの別のインスタンスをプッシュすると、インセットは調整されず、テーブルのスクロールはアクセサリ ビューの後ろになります。

この問題は、iOS 8 でのみ見られます。これに関するもう 1 つの興味深い点は、アクセサリ ビューをクリックしてキーボードを開くと、キーボードが表示されているときと非表示になっているときにインセットが適切に調整されることです。

また、問題を解決するためにテキスト フィールドをクリックせずに反撃した場合、以前の VC も壊れています。

上記の情報に基づいて、これは iOS 8 のバグであると確信しています。誰かがこれを見て、ある程度合理的な修正を考え出すことを願っています。

4

1 に答える 1

0

厄介な解決策ですが、それでも解決策:

    - (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.inputAccessoryView.inputAccessoryTextField becomeFirstResponder];
        [self.inputAccessoryView.inputAccessoryTextField resignFirstResponder];
    });
}

これにより、ビューはインセットを再描画できます

于 2014-11-21T13:16:25.883 に答える