私は iPad/Universal アプリケーションを開発しており、UINavigationController を UISplitViewController のメインの詳細ビューとして処理するという問題に直面しています。私が知りたいのは、横向きのときにデフォルトのサイドコントローラーボタンを詳細コントローラーに追加する方法です。
意味
Split View Controller は次のように定義されています。
splitViewController = [[UISplitViewController alloc] init];
SideController *root = [[[SideController alloc] init] autorelease];
DetailController *detail = [[DetailController alloc] init];
InserisciDatiController *calcolo = [[[InserisciDatiController alloc]
initWithNibName:@"InserisciDatiNuovi"
bundle:[NSBundle mainBundle]]
autorelease];
UINavigationController *rootNav = [[[UINavigationController alloc] initWithRootViewController:root]autorelease];
UINavigationController *calcoloNav = [[[UINavigationController alloc] initWithRootViewController:calcolo] autorelease];
splitViewController.viewControllers = [NSArray arrayWithObjects:rootNav, calcoloNav, nil];
splitViewController.delegate = detail;
その後、解放可能なすべてのオブジェクトを解放します。SideController
詳細コントローラーの一種のインデックスとしてを使用しています。これにはテーブル ビューがあり、各行をクリックすると、詳細のメイン ビュー コントローラーが更新されます。新しいコントローラーはそれぞれ、常に UINavigationController のインスタンスです。
詳細を更新する
myAppDelegate *delegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
UINavigationController *nav = (UINavigationController *)[delegate.splitViewController.viewControllers objectAtIndex:1];
[nav setViewControllers:[NSArray arrayWithObjects:controller, nil]];
ユーザーがサイドビューコントローラーの行をタップすると、このコードを使用して詳細コントローラーを更新します。
横向きを処理する
非表示のサイドビューコントローラーを表示するデフォルトのツールバーボタンを追加したいときに、横向きを処理する方法を知りたいです。私ができないことは、このメソッドを使用してボタンを追加する詳細ナビゲーション コントローラーのツールバーを取得することです。
- (void)splitViewController:(UISplitViewController*)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem*)barButtonItem
forPopoverController:(UIPopoverController*)pc
また、新しいコントローラーをナビゲーション コントローラーにプッシュすると、既定の [戻る] ボタンがツールバーに表示されます。この場合、ボタンの作成をどのように処理すればよいですか?
アップデート
お願いします、誰もこの種の問題を経験したことがないとは言わないでください! どのように iPad アプリを開発していますか? すすり泣き...