0

我通过以下方式创建了 6 个视图控制器:

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 以编程方式包装在导航控制器中。我在 Apple Developer 的网站上找到了这个:

- (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];
}

但我需要在创建视图控制器的地方进行。有任何想法吗?

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

您创建一个包含指向视图控制器的指针的 N​​SArray,并将 NSArray 分配给导航控制器的 viewControllers 属性。

于 2012-04-24T02:51:41.923 回答