那里,
我在3天前问了一个类似的问题,但它并没有帮助我,所以我又来了。 我已经创建了一个基于 VIEW 的应用程序,因此不是标签栏应用程序,我想为它添加一个标签栏。在开发人员库中,我了解了如何执行此操作http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/TabBarControllers/TabBarControllers.html 我正在使用教程如何添加带有nib文件的tabbar。但是只有一个问题,标签栏是在app委托中创建的,这不是我想要的,我希望我的tabbar不在主视图上,而是在fift视图上。
有没有人知道一个解决方案,在互联网上我读了一些关于如何用视图执行它的东西,或类似的东西,但我可以把它弄清楚。
我希望有人能帮助我。
谢谢你。
答案 0 :(得分:0)
我想我得到了解决方案:
首先将您的视图基础应用程序更改为基于导航:
这是您主要笔尖的标准模板:
这样做:
添加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
应该像这样工作。