1

アップデート

MGSplitViewControllerの問題を修正することになったので、現在プロジェクトのこのフォークを使用しています。http://github.com/ArtSabintsev/MGSplitViewControllerこの編集を書いている時点では、フォークはMattGemmellのマスターに引き込まれていません。ブランチ。

ご注意ください

  1. 私のiPadアプリは横向きのみで、iOS5とiOS6と互換性があります
  2. 部分的に機能するソリューションがありますが、さらに一歩進める必要があります。
  3. 私のアプリの画面の大部分では、マスタービューと詳細ビューの両方を表示する必要があります(通常の動作)。
  4. ある時点では、detailVCのみが存在する必要があります。

私は今それをどのようにやっていますか?

次のUISpliterViewControllerDelegateメソッドを使用しています

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
    return self.hideRootViewController;
}

ここで、hideRootViewControllerは、最初はNOに設定されているブール値です。

部分的な解決策

ブール値をYESに変更して(アプリの任意の画面/ VCで)画面を回転すると、masterVCが消え、detailVCが画面全体を占めます。

残りの問題

デバイスを物理的に回転させずにこの変更を強制するにはどうすればよいですか、またはデバイスの向きの通知を強制的に変更してUISplitViewControllerを再描画するにはどうすればよいですか?

次の試行は失敗しました

  1. CGAffineTansformation(同一性と小角変換)
  2. UIDeviceOrientationDidChangeNotificationを投稿する
  3. splitVC.viewでsetNeedsLayoutを呼び出す
  4. splitVCでのmodalVCの提示と即時却下

注:私はMGSplitViewControllerを使用していません。また、このプロジェクトでそのクラスを使用したくありません。

4

2 に答える 2

0

手動で回転を強制するには、次を使用できます。

[[UIApplication sharedApplication] setStatusBarOrientation:]
于 2012-09-20T15:04:23.003 に答える
-1

mgsplitviewcontrollerを使用しない理由。私は自分のプロジェクトでそれを使用しました、それは素晴らしくそして非常に簡単な実装で動作します。マスタービューを簡単に非表示/切り替えできます。

于 2012-09-20T15:16:56.337 に答える