如何在单个应用程序中包含tabbar和导航控制器?

时间:2011-09-02 06:41:04

标签: iphone ios cocoa-touch

如何在基于窗口的应用程序中创建标签控制器和导航栏控制器?我试图包括两个控制器。

3 个答案:

答案 0 :(得分:1)

你可以这样做...... 创建navigationController类型的项目.. 然后在AppDelegate中,创建一个tabBarController。有一组ViewControllers如下......

mTabBar = [[UITabBarController alloc] init];
    NSMutableArray *localViewControllersArray = [[NSMutableArray alloc] initWithCapacity:3];


    TSDetailTaskController *mTSDetailTaskController = [[TSDetailTaskController alloc]initWithNibName:@"TSDetailTaskController" bundle:nil];
    UINavigationController *mTaskNavBar=[[UINavigationController alloc]initWithRootViewController:mTSDetailTaskController];
    mTaskNavBar.tabBarItem.title=@"Task List";
    mTaskNavBar.tabBarItem.image =[UIImage imageNamed:@"glyphicons_114_list.png"];
    [mTSDetailTaskController release];

    mTSSearchController=[[TSSearchController alloc]initWithNibName:@"TSSearchController" bundle:nil];
    UINavigationController *mSearchNavBar=[[UINavigationController alloc]initWithRootViewController:mTSSearchController];
    mSearchNavBar.title=@"Search";
    mSearchNavBar.tabBarItem.image=[UIImage imageNamed:@"glyphicons_009_search.png"];
    [mTSSearchController release];

    TSSettingController *mTSSettingController = [[TSSettingController alloc]initWithNibName:@"TSSettingController" bundle:nil];
    UINavigationController *mSettingNavBar=[[UINavigationController alloc]initWithRootViewController:mTSSettingController];
    mSettingNavBar.tabBarItem.title=@"Setting";
    mSettingNavBar.tabBarItem.image=[UIImage imageNamed:@"glyphicons_280_settings.png"];
    [mTSSettingController release];


    [localViewControllersArray addObject:mTaskNavBar];  
    [localViewControllersArray addObject:mSearchNavBar];
    [localViewControllersArray addObject:mSettingNavBar];

    [mTaskNavBar release];
    [mSearchNavBar release];
    [mSettingNavBar release];


    mTabBar.viewControllers = localViewControllersArray;
    mTabBar.view.autoresizingMask==(UIViewAutoresizingFlexibleHeight);

    [localViewControllersArray release];


    [window addSubview:mTabBar.view];
    [self.window makeKeyAndVisible];
    return YES;

希望这能帮到你..

答案 1 :(得分:0)

而不是视图控制器,添加导航控制器作为tabbarcontroller的每个项目。

答案 2 :(得分:0)

您也可以在Interface Builder中执行此操作,只需确保Tabbar控制器是root / master控制器,在其中您可以根据需要添加任意数量的navControllers。当然,tabbar控制器是添加到AppDelegate.m文件中的Window的控制器。 我不希望从开头看到tabbar,你可以在viewDidLoad或self.tabbarcontroller.tabbar.hidden = YES;方法中实现viewWillAppear,这些方法是你不想要tabbar的每个视图。