iOS7で奇妙な問題が発生しUITabBarController
ましたが、回避策が見つからないようです。
シナリオ:
- iPad で横向きを使用するナビゲーション ベースのアプリ。
- アプリは、メイン ビューと、UITabBarController である 2 番目のビューで構成されます。
- TabBarController には 2 つのタブがあります。
- 最初のビューには 2 つのボタンがあります。各ボタンはタブ バー コントローラーへのセグエを実行し、別のタブを選択済みとして設定します。(つまり、button1 は最初のタブを選択し、button2 は 2 番目のタブを選択します)。
- タブの設定は、タブ バー コントローラー
prepareForSegue
を呼び出すことによって行われます。setSelectedIndex
結果:
iOS 7 では、タブ バー コントローラーに表示されるビューが、ビューの右端に沿ってタッチ イベントを登録できないことがわかりました。そのため、上記のストーリーボードでは、画面の右側にある UISwitch をタップできません。
ビューにタップジェスチャレコグナイザーを添付し、それを使用して、タッチできる画面の領域をログに記録しました.x = 770ポイントまでのタッチイベントを登録しているようです. 画面の残りの 1/4 は「触れることはできません」!
セグエの後、手動で別のタブに切り替えて再び元に戻すと、タッチ イベントが「修正」され、フル ビューが再びタッチに応答します。
これは iOS 5 / 6 では問題ないようです。
次の点について、どんな助けでも大歓迎です。
- そもそも何が原因でこうなってしまうのか(iOS7のバグ・変更?)
- 他にどうすればこれを回避できますか?
setSelectedViewController
使用だけでなく呼び出しも試しましsetSelectedIndex
たが、これは同じようです。
前もって感謝します。