我的应用程序以带有5个选项卡的标签栏控制器开始。在开始时第一个以其名称呈现,但其他四个在我点击它们之前没有名称。然后该名称显示取决于用户拥有哪种语言。 如何在标签栏出现之前设置标签的名称? 我正在使用故事板。有没有一种方法可以通过编程方式在标签栏中设置标题,其余的都是通过storyboard完成的?我在AppDelegate尝试了一些像[FirstViewController setTitle:NSLocalizedString(@"Titel1", nil)];
但我得到一个错误,没有选择器setTitle的类方法。 谢谢。标签栏项目标题出现之前Storyboard
回答
今天我有同样的问题。我也使用故事板。在我的情况下,我用下面的方式。
- 我创建了一个新的“Objective-C类”的名称 “MainTabBarViewController”作为“的UITabBarController”的子类。
在我的“身份检查员”故事板中,我将“自定义类”更改为“MainTabBarViewController”。
在 “MainTabBarViewController” 方法 “viewDidLoad中的” i加入:
[[self.viewControllers objectAtIndex:0]的setTitle:NSLocalizedString(@ “家”,零)];
[[self.viewControllers objectAtIndex:1] setTitle:NSLocalizedString(@“statistics”,nil)];
[[self.viewControllers objectAtIndex:2] setTitle:NSLocalizedString(@“settings”,nil)];
[[self.viewControllers objectAtIndex:3] setTitle:NSLocalizedString(@“info”,nil)];
我想这不是完美的方式,但对我来说,它是完美的。
在应用程序的委托,要在其中创建视图控制器,在这里(而不是viewDidLoad
)设置标题属性,例如:
vc1 = [[VC1 alloc] init];
vc1.title = @"List";
vc2 = [[VC2 alloc] init];
vc2.title = @"Map";
tabBarController.viewControllers = [[NSArray alloc] initWithObjects:vc1, vc2, nil];
我正在使用故事板。所以我在故事板中创建了它们。故事板中是否有另外一种方法来做到这一点? – halloway4b 2012-04-10 12:43:15
我不知道,因为我不使用故事板。 – 2012-04-10 13:20:17
好的......谢谢.... – halloway4b 2012-04-10 13:44:41
如果你看看由Xcode中创建的FirstViewController使用基于在- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
方法模板标签-Bar应用程序,你可以看到这样的事情:
if (self) {
//check your language
self.title = NSLocalizedString(@"First", @"First");
self.tabBarItem.image = [UIImage imageNamed:@"first"];
}
所以,你必须检查你的语言,然后设置title
属性,这将设置次标题栏和导航栏中的标题。
我在Storyboard中有一个Tab Bar View Controller,当它显示时,我希望显示所有标签栏标题,具体取决于用户在iPhone中配置的语言。 – halloway4b 2012-04-10 13:46:22
试试这个,在每个视图u必须使用此方法
假设这是你第一个视图
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"homepage", @"homepage");
[self.tabBarItem setTag:0];
self.tabBarItem.image = [UIImage imageNamed:@"homepage"];
}
return self;
}
在您的应用程序委托类编写代码添加UITabBarController
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2,viewController3,viewController4,viewController5, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
加入上述代码
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}
这是否与故事板和弧线一起工作? – halloway4b 2012-04-10 13:11:11
我不知道这个故事无聊,但它会在其他项目中挑衅 – freelancer 2012-04-10 13:13:54
我有两个选项卡是这样的结构:
MainTabBarController : UITabBarController
+- MessagesNavigationController : UINavigationController
+- ContactsNavigationController : UINavigationController
与故事板和ARC的结构我在我的UITabBarController视图控制器的自定义类重载了initWithCoder:
选择器(在这种情况下ContactsNavigationController
)和初始化所述tabBarItem.title
有这样的:
@implementation ContactsNavigationController
...
- (id)initWithCoder:(NSCoder *)decoder
{
self = [super initWithCoder:decoder];
if (self) {
self.tabBarItem.title = NSLocalizedString(@"Contacts", nil);
}
return self;
}
当使用故事板iOS的调用(id)initWithCoder:
代替-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
当故事板视图控制在UITabBarController启动期间初始化ler。还要注意,viewDidLoad
直到从选项卡中选择视图控制器选项卡才会被调用。
- 1. 在出现之前更改用于UIMenuController的标签标题
- 2. xCode Storyboard,标签栏项目图像大小
- 3. 问题添加标签栏项目UITabBar
- 4. 重组标签栏项目
- 5. 标签栏上的图标项目
- 6. 如何同样间距标签栏标签栏的项目
- 7. 自定义标签栏和标签栏按钮项目
- 8. 隐藏标签栏项目中的标签栏控件
- 9. 更改标签栏项目标题和颜色programmaticaly
- 10. 标签栏项目需要更改图片和标题
- 11. 标签栏项目标题以编程方式不显示在目标c中
- 12. 如何更改页面标题而不更改标签栏项目的标题?
- 13. HTML5实现移动应用程序标签栏和标题栏
- 14. TTPhotoViewController删除工具栏和块标签栏项目标题更改
- 15. 标签栏呈现性能问题
- 16. 问题在iPhone项目的标题栏
- 17. 选中标签栏时出现黑屏
- 18. IOS - 标签栏项目图像修改
- 19. 如何隐藏标签栏项目?
- 20. 隐藏在Xcode标签栏项目4
- 21. 如何给行动标签栏项目
- 22. 标签栏项目将不会显示
- 23. 如何在标签栏项目
- 24. 标签栏项目不收回变量
- 25. iOS标签栏项目导致Twitter
- 26. 刷新webview上的标签栏项目
- 27. 如何隐藏标签栏项目?
- 28. 标签栏控制器..项目名称
- 29. 根据标签号码选择标签栏项目
- 30. 如何设置目标c中的标签栏项目badgeValue?
嗨,那里...我喜欢这个主意,你说得对,它完美的作品......非常感谢。 – halloway4b 2012-05-21 19:17:14
我不敢相信!我一直在寻找这个解决方案这么久。非常感谢你:) – thedp 2013-10-14 00:36:13
请参阅下面的解决方案,它不需要使用索引设置标题。 – 2014-03-23 17:29:44