0

次の方法で6つのViewControllerを作成しました。

Truck_Tracker_AppAppDelegate *delegate = (Truck_Tracker_AppAppDelegate *)UIApplication.sharedApplication.delegate;
UIViewController *viewController1 = [[TrucksViewController alloc] initWithNibName:@"TrucksView" bundle:nil];
UIViewController *viewController2 = [[MapViewController alloc] initWithNibName:@"MapView" bundle:nil];
UIViewController *viewController3 = [[BlockPartyViewController alloc] initWithNibName:@"BlockPartyView" bundle:nil];
UIViewController *viewController4 = [[FavoritesViewController alloc] initWithNibName:@"FavoritesView" bundle:nil];
UIViewController *viewController5 = [[UserSettingsViewController alloc] initWithNibName:@"UserSettingsView" bundle:nil];
UIViewController *viewController6 = [[TOSettingsViewController alloc] initWithNibName:@"TOSettingsView" bundle:nil];

viewController1、3、および4をプログラムでナビゲーションコントローラーにラップする必要があります。私はこれをAppleDeveloperのWebサイトで見つけました。

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
UIViewController *myViewController = [[MyViewController alloc] init];
navigationController = [[UINavigationController alloc]
                            initWithRootViewController:myViewController];

window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
window.rootViewController = navigationController;
[window makeKeyAndVisible];
}

しかし、viewControllersを作成した場所でそれを行う必要があります。何か案は?

4

2 に答える 2

0

さて、最初にUINavigationControllerについて理解しなければならないことがいくつかあります。を使用するUINavigationController * navigationController = [[UINavigationController alloc]initWithRootViewController:myViewController];と、実際にはクラスmyViewControllerのナビゲーションコントローラーが作成され、デフォルトのUIToolBarとデフォルトのUINavigationBarが自動的に付与されます。また、UINavigationControllerはUIViewControllerのサブクラスであるため、そのクラスを引数として取る任意の関数の代わりに自由に使用できます。

これをUITabbarで使用することを想定しているので、ビューコントローラーごとに個別のUINavigationControllerインスタンスを作成し、それらをNSArray *に集めて、UITabbarの「viewControllers」プロパティと等しくなるように設定します。

于 2012-04-24T03:17:01.510 に答える
-1

ビューコントローラへのポインタを含むNSArrayを作成し、NSArrayをナビゲーションコントローラのviewControllersプロパティに割り当てます。

于 2012-04-24T02:51:41.923 に答える