如何构建具有多种类型控制器的应用程序?

时间:2010-05-26 04:29:43

标签: iphone objective-c cocoa-touch interface-builder uitabbarcontroller

如何完成以下任务:

  1. 当我的应用加载UIView时会显示4个按钮
  2. 点击一个按钮将加载一个可以显示多个视图的UITabBarController(不是带有UITabBar的UIView)。
  3. 这对我来说似乎很有挑战性,因为为了让我使用UITabBarController,我需要将它添加到appDelegate中的窗口子视图中。通过这样做,我的应用程序将自动加载根视图中的UITabbarController。

1 个答案:

答案 0 :(得分:1)

您无需在应用程序委托中添加UITabBarController,这只是使用它的最常用方法。您可以让初始视图使用简单的UIViewController,然后在按下按钮时加载UITabBarController(以编程方式或从笔尖中),然后显示它。

以下是您的应用代理中可能包含的内容的示例:

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // viewController is a UIViewController loaded from MainWindow.xib with a button that calls loadTabBarController
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

    return YES;
}

- (IBAction) loadTabBarController {
    self.tabBarController = [[[UITabBarController alloc] initWithNibName:@"MyTabBarController" bundle:nil] autorelease];
    [viewController.view removeFromSuperview];
    [window addSubview:tabBarController.view];
}