第五个视图中基于视图的应用程序中的选项卡栏

时间:2011-02-19 20:36:32

标签: iphone ios uitabbar nib

那里,

我在3天前问了一个类似的问题,但它并没有帮助我,所以我又来了。 我已经创建了一个基于 VIEW 的应用程序,因此不是标签栏应用程序,我想为它添加一个标签栏。在开发人员库中,我了解了如何执行此操作http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/TabBarControllers/TabBarControllers.html 我正在使用教程如何添加带有nib文件的tabbar。但是只有一个问题,标签栏是在app委托中创建的,这不是我想要的,我希望我的tabbar不在主视图上,而是在fift视图上。

有没有人知道一个解决方案,在互联网上我读了一些关于如何用视图执行它的东西,或类似的东西,但我可以把它弄清楚。

我希望有人能帮助我。

谢谢你。

1 个答案:

答案 0 :(得分:0)

我想我得到了解决方案:

首先将您的视图基础应用程序更改为基于导航:
这是您主要笔尖的标准模板: enter image description here

这样做:
enter image description here

添加UINavigationController。打开它并将ViewBasedViewController拖到UINavigationController中的现有控制器上。

转到您的App代表:

@interface ViewBasedAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UINavigationController *navController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end

@synthesize window;
@synthesize navController;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    [self.window addSubview:navController.view];
    [self.window makeKeyAndVisible];

    return YES;


 }

//Other code omitted
@end

将navController插座链接到NIB中的导航控制器。

创建一个新类,让我们说'TheTabBarController'。

将此添加到基于视图的控制器以添加第五个控制器:

- (IBAction) addFifthView:(id)sender {
    TheTabBarController *conn = [[TheTabBarController alloc] init];
    [self.navigationController pushViewController:conn animated:YES];
    [conn release];
}

像这样实现TheTabBarController:

@interface TheTabBarController : UITabBarController {

}

@end

@implementation TheTabBarController

- (void) viewDidLoad {
    UIViewController *dummy = [[UIViewController alloc] initWithNibName:@"Dummy" bundle:nil];
    dummy.title = @"Dummy title";
    dummy.view.backgroundColor = [UIColor redColor];

    UIViewController *otherDummy = [[UIViewController alloc] initWithNibName:@"Dummy" bundle:nil];
    otherDummy.title = @"Other dummy";
    otherDummy.view.backgroundColor = [UIColor blueColor];

    [self setViewControllers:[NSArray arrayWithObjects:dummy,otherDummy,nil]];

    [dummy release];
    [otherDummy release];
}
//Other code omitted
@end

应该像这样工作。