私のプロジェクトは、開始するビューベースのプロジェクトです。非ルートビューにUINavbarControllerとTabbarControllerを追加する
したがって、アプリのデリゲートは通常通りに開始されます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
その後、私の最初のViewControllerが呼び出され、ユーザーが自分の資格情報を入力してログオンすることができますので、それは2 UITextFieldsを示しています。
これが成功すると、別のビューコントローラが呼び出され、UINavigationControllerとUITabBarControllerがビューに追加されます。以下に示すように。
- (void)viewDidLoad
{
[super viewDidLoad];
UINavigationController *localNavigationController;
tabBarController = [[UITabBarController alloc] init];
NSMutableArray *localControllersArray = [[NSMutableArray alloc] initWithCapacity:2];
Hello *firstViewController;
firstViewController = [[Hello alloc] init];
localNavigationController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
[localNavigationController.tabBarItem initWithTitle:@"Test" image:[UIImage imageNamed:@"tabBarIcon.png"] tag:1];
//[localNavigationController.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];
[email protected]"New Requests";
[localControllersArray addObject:localNavigationController];
[localNavigationController release];
[firstViewController release];
Test *secondViewController;
secondViewController = [[Test alloc] init];
localNavigationController = [[UINavigationController alloc] initWithRootViewController:secondViewController];
[localNavigationController.tabBarItem initWithTitle:@"Test" image:[UIImage imageNamed:@"tabBarIcon.png"] tag:2];
[email protected]"Existing";
[localControllersArray addObject:localNavigationController];
[localNavigationController release];
[secondViewController release];
// load up our tab bar controller with the view controllers
tabBarController.viewControllers = localControllersArray;
// release the array because the tab bar controller now has it
[localControllersArray release];
// add the tabBarController as a subview in the window
[self.view addSubview:tabBarController.view];
}
これはこれまでのところうまくいくようです。ステータスバーの高さによってNavbarとTabbarの両方が低くなる問題がありましたが、ステータスバーを隠すと修正されました。
このようにしてはならない理由はありますか?それは悪い習慣か、私は道に沿っていくつかの問題に遭遇するでしょうか?
アプリデリゲートからNavbarとTabbarの両方を設定して、ログオン画面の両方でNavbarとTabbarを非表示にすることができます。それは私が見る唯一の他の選択肢です。
皆様からのご意見をお待ちしております。私がこれまでにしたことの結果については緊張しています。
多くのおかげで、 -code