私は1つのマスター・スプリット・ビュー・コントローラー(マスター・ディテール・ビュー)を持っていますが、別のスプリット・ビュー・コントローラーを同じ意味で表示し、2つのUISplitViewControllerを互換的に表示
私が現在行っていることは、最初のsplitviewの詳細ペインでボタンを押すと、splitviewcontrollerプロパティのコントローラが変更されることです。
self.splitViewController.viewControllers = vc.splitViewController.viewControllers;
今、私は私の新しくロードされたコントローラから元splitviewをバック表示したいです。私はこのコードでこれを達成することができます:
HomeLeftDetailViewController* mc = [storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"];
UIViewController* dt = [storyboard instantiateViewControllerWithIdentifier:@"RightViewController"];
self.splitViewController.viewControllers = [[NSArray alloc]initWithObjects:mc, dt,nil];
これはきれいな方法ではないと思います。
アイデア?
更新
これは、私はそれを固定している方法です。
これは良い解決策ではありませんが、後で私はこのメモリの問題を改善したいかもしれませんが、うまくいきます。
これにより、第2 SplitViewコントローラ
のボタン操作で書かれたコードHomeViewController* hvc = [storyboard instantiateViewControllerWithIdentifier:@"HomeScreen"];
UINavigationController *kkc = [hvc.viewControllers objectAtIndex:0];
UIViewController *kkc2 = [hvc.viewControllers objectAtIndex:1];
// HomeLeftDetailViewController* mc = [storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"];
// dt = [storyboard instantiateViewControllerWithIdentifier:@"Profile"];
self.splitViewController.viewControllers = [[NSArray alloc]initWithObjects:kkc, kkc2,nil];
ホーム画面が最初splitviewコントローラビューの識別子です。
HomeViewController* hvc = [storyboard instantiateViewControllerWithIdentifier:@"HomeScreen"];
はマスター詳細ビューを作成すると仮定しますが、self.splitViewController.viewControllers = hvc.viewControllers
はポインタを割り当て、ビューが画面から外されたときには破棄されます。
もっと分かち合うものが見つかったら、これについての更新情報をお知らせします。