1

私はこの問題でしばらく苦労してきました。私はそれを動作させましたが、それが本来あるべき方法ではありませんでした、そして私はそれを間違ってやっているのでそれを推測します。私の目標は、次のレイアウトにすることです。

4つのボタンがあるメインメニューがあります。それぞれをクリックすると、異なるTableViewが表示されます(メインメニューに戻ることができるように、navControllerの右隅に戻るボタンが必要ですが、そうではありません)。これらの各TableViewはUITabBarController内にあります(このhttp://i.stack.imgur.com/GkFwo.jpgのように見えます)

では、どうすればこれを行う必要がありますか?

これは私の現在のコードです(ある時点で間違いなく間違っています)

- (IBAction)MyButton:(id)sender
{
self.tabBarController = [[UITabBarController alloc] init];
UIViewController *viewController1, *viewController2, *viewController3, *viewController4;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    viewController1 = [[[LexikonControllerViewController alloc] initWithNibName:@"LexikonControllerViewController" bundle:nil] setArrays:PflanzenIDs List:ListOfPlants Index:IndexOfPlants dict:DictionaryOfPflantsAndIDs];
}

UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:viewController1];

NSArray* controllers = [NSArray arrayWithObjects:navController1, nil];

self.tabBarController.viewControllers = controllers;

CGRect frame = self.tabBarController.view.frame;
frame.size.height = frame.size.height - 20;
self.tabBarController.view.frame = frame;

[self.view addSubview:self.tabBarController.view];
}

編集:

今私はこれを試しました:-(void)applicationDidFinishLaunching:(UIApplication *)application {
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

vc = [[MyViewController alloc] init];
[vc setTitle:@"Home"];
[vc setParent:self];

navController = [[UINavigationController alloc] initWithRootViewController:vc];

UITabBarController *tb = [[UITabBarController alloc] init];
NSArray *controllers = [[NSArray alloc] initWithArray:[NSArray arrayWithObjects:navController, nil]];
tb.viewControllers = controllers;

[window addSubview:[tb view]];
[window makeKeyAndVisible];
}

問題:メインビュー(メインメニュー付き)でタブバー(そこにあるべきではない)が表示され、hidesBottomBarWhenPushedを使用すると他のすべてのビューでタブバーが完全に非表示になります:(

4

2 に答える 2

1

タブ バー コントローラーは、ルート ビュー コントローラーにする必要があります。これをストーリーボード内に接続することもできます。

于 2012-10-23T14:27:49.517 に答える
0

やった。メイン メニューをナビゲーション コントローラーのルート ビューとして設定し、ボタンの 1 つをクリックすると、TabBarController の設定を処理する新しい UIViewController を読み込み、各タブに 4 つの異なるテーブルビューを読み込みます。これらはすべて、ストーリーボードと XIB なしです。

于 2012-10-28T09:52:53.330 に答える