3

SplitViewController テンプレートに基づいて新しいアプリを作成すると、Split View で正常に動作します。

私のメイン画面は、非分割ビューの「メニュー」です。この「mainMenu」をsplitViewControllerの上にモーダルで追加するためのベストプラクティスを見つけようとしています。(次に、他の分割されていないビューを mainMenu の上にプッシュするか、それを削除して表示し、UISplitViewController を使用します。)

私が試してみました:

[self.navigationController presentModalViewController:mainMenu animated:NO];

[self presentModalViewController:mainMenu animated:NO];

rootViewController と detailViewController の viewWillAppear メソッドと viewWillLoad メソッド。どちらの場合も、コードはエラーなしで実行されますが、mainMenu は表示されず、通常の detailViewController と rootViewControllers が表示されます。

(main.xibファイルのnavigationControllerからdetailViewのnavigationControllerへのアウトレットを作成しましたが、何も変わりませんでした。)

を使用してこれを機能させることができましたが、これは正しくないようです。

iPad_Prototype_SplitAppDelegate *delegate = (iPad_Prototype_SplitAppDelegate *) [   [UIApplication sharedApplication] delegate];

[delegate.splitViewController.view addSubview:mainMenu.view];
[delegate.splitViewController.view bringSubviewToFront:mainMenu.view];

このようなカバー ビューをモーダルに表示するようにという多くの回答を見てきましたが、splitViewController セットアップで適切な場所または構成を見つけることができないようです。助けや洞察をありがとう。

最後に、このアプローチは間違っていますか? detailViewController を交換して、ポートレート モードで全画面表示にし、ルート コントローラーのメニュー項目を追加しないようにする必要がありますか?

4

1 に答える 1

1

AppDelegateのsplitViewControllerは例のようですか?これは役に立ちますか?

//AppDelegate.m
- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  

MyController *myCont = [[MyController alloc] initMainMenu];
// mess around with myCont.view.modalPresentationStyle;

[myCont setModalDelegate:self]; 
// Create a delegate (<ModalControllerDelegate>) to dismiss view when done

[self.splitViewController presentModalViewController:myCont animated:NO];
[myCont release];
}

// for completion sake
-(void)modalViewDismiss:(MyController *)modalView {
    [self.splitViewController dismissModalViewController:YES];
}
于 2011-07-25T14:56:13.937 に答える