0

うまくいけば、誰かが助けてくれるでしょう。

を使用するアプリを持っていますが、大量のXcode があり、Xcode の実行が非常に遅くなり始めたためUISplitViewController、複数の使用を開始する必要がありました。を複数に移動しました。storyboardsviewsUIViewControllersstoryboards

Master View静的セルから構築されているため、ユーザーがセルを選択すると、通常はviewを押して を変更しsegueます。

の詳細ビューをプログラムで変更する方法を知りたいと思っていUISplitViewControllerます。

ありがとう

4

1 に答える 1

4

UISplitViewController をサブクラス化し、ルート splitViewController をそのクラスに設定します。次に、このメソッドを UISplitViewController サブクラスに追加します。

-(void)setDetailControllerTo:(UIViewController *)detailController withNavControllerTitle:(NSString *)title {
    [detailController view]; // this line forces the viewDidLoad method to be called

    if (title) {
        UINavigationController *navController = [[UINavigationController alloc] init];
        [navController pushViewController:detailController animated:YES];
        detailController.title = title;

        NSArray *viewControllers=@[self.mainController.viewControllers[0],navController];
        self.mainController.viewControllers = viewControllers;
    } else {
        NSArray *viewControllers=@[self.mainController.viewControllers[0],detailController];
        self.mainController.viewControllers = viewControllers;
    }
}

このメソッドを呼び出すには、マスター ビュー コントローラーから次のようにします。

FixedSplitViewController *splitController = (FixedSplitViewController*) self.splitViewController;

CurrentEventViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"CurrentEventViewController"];
// add any setup code here
[splitController setDetailControllerTo:controller withNavControllerTitle:@"Current Event"];

私のプロジェクトの多くでは、splitviewcontroller が常にマスター ビューを表示する必要があるため、このサブクラスを使用して、マスター ビューが縦向きの回転で隠れないようにしています。

于 2013-11-08T13:12:22.260 に答える