【问题标题】:tab bar in a view based application on the fift view第五视图上基于视图的应用程序中的选项卡栏
【发布时间】:2011-02-19 20:36:31
【问题描述】:

在那里,

我在 3 天前问了一个类似的问题,但它没有帮助我,所以我又来了。 我制作了一个基于 VIEW 的应用程序,而不是一个标签栏应用程序,我想向它添加一个标签栏。在开发人员库中,我阅读了如何做到这一点http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/TabBarControllers/TabBarControllers.html 我正在使用教程如何添加带有 nib 文件的标签栏。但是只有一个问题,标签栏是在应用程序委托中创建的,这不是我想要的,我希望我的标签栏不在主视图上,而是在第五个视图上。

有没有人知道解决方案,在互联网上我读到了一些关于如何使用 view didload 或类似的东西,但我无法弄清楚。

我希望有人可以帮助我。

谢谢。

【问题讨论】:

  • 我回答了你的最后一个问题,关于如何制作 TabBarController。但是“五”视图是什么意思?
  • @Mats:第五个视图我的意思是,我有第一个视图,这就是应用程序打开的地方,然后有一个按钮将您带到第二个视图,有一个按钮将您带到第二个视图你到第三个视图,最终你到达第五个视图,这就是我想要标签栏的地方。我还有一个基于视图的应用程序,所以我可以使用你的其他提示,因为那是用于标签栏应用程序的。我希望这能解释它。
  • 您使用 UINavigationController 来切换视图? PS:这是第五个

标签: iphone ios uitabbar nib


【解决方案1】:

我想我找到了解决方案:

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

像这样:

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

转到您的应用代理:

@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

应该像这样工作。

【讨论】:

  • 我无法让它工作,当我构建它时它说它有一个重复的输入或类似的东西,也许它与它说@end两次的事实有关。跨度>
  • 您必须将接口放在.h 中,将实现放在.m 中。然后你必须在你分配它的类中导入 TheTabBarController.h。
  • 是的,也许我可以通过电子邮件将其发送给您,顺便说一句,在您的个人资料上,我看到您来自荷兰,所以在电子邮件中我们可以说荷兰语。因为我的英语不是我最大的天赋。
  • 我没有,我只是从霍兰那里看到你。我只是建议我可以邮寄给你。
  • 或者我可以把它上传到我的mobileme并给你下载链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多