私は、iPadにあるメール アプリに似た (ただし正確には似ていない) ものを作ろうとしています。
具体的には、タブベースのアプリを作成したいのですが、各タブはユーザーに異なる UISplitViewを提示します。
各 UISplitView には、Master ビューと Detail ビューが含まれています (当然のことです)。
各 UISplitView で、 Master を、新しい UIViewControllers がスタックにプッシュ (またはスタックからポップ) されるマルチレベルのナビゲーション コントローラーにしたいと考えています。UISplitView 内のこのタイプのナビゲーションは、アプリケーションがネイティブの電子メール アプリに似ている場所です。
私の知る限り、まともな「uitabbarcontroller内のsplitviewcontroller」を説明している唯一の場所はここです: TabBarのUISplitViewController ( UITabBarController )? そして、私は受け入れられた答えに従おうとしました。
受け入れられた解決策は私にとってはうまくいくようです (つまり、異なる UISplitView を切り替えることができるタブバー コントローラーを取得します)。
問題は、UISplitView の左側をマルチレベル ナビゲーション コントローラーにする方法がわからないことです。
これは、最初の「タブバーコントローラーの「内側」の分割ビュー」を作成するためにアプリデリゲート内で使用したコードです(前述のリンクで提案されているものとほぼ同じです)。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSMutableArray *tabArray = [NSMutableArray array];
NSMutableArray *array = [NSMutableArray array];
UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
MainViewController *viewCont = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
viewCont = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
[splitViewController setViewControllers:array];
[tabArray addObject:splitViewController];
[splitViewController release];
array = [NSMutableArray array];
splitViewController = [[UISplitViewController alloc] init];
viewCont = [[Master2 alloc] initWithNibName:@"Master2" bundle:nil];
[array addObject:viewCont];
[viewCont release];
viewCont = [[Slave2 alloc] initWithNibName:@"Slave2" bundle:nil];
[array addObject:viewCont];
[viewCont release];
[splitViewController setViewControllers:array];
[tabArray addObject:splitViewController];
[splitViewController release];
// Add the tab bar controller's current view as a subview of the window
[tabBarController setViewControllers:tabArray];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
return YES;
}
クラスMainViewControllerは、次のメソッドを含む UIViewController です。
- (IBAction)push_me:(id)sender {
M2 *m2 = [[[M2 alloc] initWithNibName:@"M2" bundle:nil] autorelease];
[self.navigationController pushViewController:m2 animated:YES];
}
このメソッドは (インターフェース ビルダーを介して) MainViewController.xib 内にある UIButton にアタッチされますUIButton が押されたとき。それでも、ボタンが押されても何もしません(メソッドが呼び出されたことはわかりますが)。
どこが間違っているのか考えていますか?
ティア!