我的應用程序以帶有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