0

画面の下部にタブバーがあり、常にそこにあるようにしようとしています。また、タブのいずれかのメニューを「クリック」すると、戻るオプションが表示されるため、ナビゲーションコントローラーとタブバーコントローラーが必要です。

私はまだiOSをよく理解していないので、見つけた答えは私を混乱させています。

この回答:アプリに UITabBar と UINavigationController がありますか?

では、どうすればこれを実装できますか? App Delegateでこのメソッドを変更したと思いますが、

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIViewController *viewController1, *viewController2;
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        viewController1 = [[CFSDFirstViewController alloc] initWithNibName:@"CFSDFirstViewController_iPhone" bundle:nil];
        viewController2 = [[CFSDSecondViewController alloc] initWithNibName:@"CFSDSecondViewController_iPhone" bundle:nil];
    } else {
        viewController1 = [[CFSDFirstViewController alloc] initWithNibName:@"CFSDFirstViewController_iPad" bundle:nil];
        viewController2 = [[CFSDSecondViewController alloc] initWithNibName:@"CFSDSecondViewController_iPad" bundle:nil];
    }
    self.tabBarController = [[UITabBarController alloc] init];
    [self.tabBarController setDelegate:self];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

ご協力ありがとうございます。

4

1 に答える 1

2

まず、手動で nib 名を設定する必要はありません。名前を付けるだけでCFSDFirstViewController~iphone.xibCFSDFirstViewController~ipad.xib. 次に、呼び出し[[CFSDFirstViewController alloc] init]て、iOS に残りを任せることができます。詳細については、iOS がデバイス固有のリソースをサポートするを参照してください。

ご質問については、UINavigationController内にのみ挿入できますUITabBarController。それを行うには、次viewController1のようにラップします。UINavigationController

CFSDFirstViewController viewController1 = [[CFSDFirstViewController alloc] init];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:viewController1];

そして、次のように代わりに使用しnavControllerますviewController1

self.tabBarController.viewControllers = [NSArray arrayWithObjects:navController, nil];

手で書いたのでコードを確認してください。ARC 以外のプロジェクトを使用する場合は、メモリに注意してください。

それが役に立てば幸い。

于 2012-04-26T16:19:52.340 に答える