簡體   English   中英

iOS:選擇選項卡之前的選項卡欄項目標題

[英]iOS: Tab bar item title before the tab is selected

在iOS 9中,選項卡中顯示的視圖控制器負責它的tabBarItem 但是選項卡欄控制器僅在需要時為每個選項卡加載視圖控制器。 因此,最初,它僅加載選項卡1的視圖控制器(如果應用程序在第一個選項卡上啟動)。 因此,除非您為情節提要中的每個選項卡項目設置標題,否則只有第一個選項卡顯示標題,因為它是當時加載的唯一視圖控制器,而其余選項卡僅顯示其圖標(我正在通過故事板,因為圖標無需本地化)。

如何通過情節提要設置所有選項卡的標題?

您可以將所有標題放入數組,並預設tabBarItem標題:

if let tabTitles = self.tabBarController?.tabBar.items as? [UITabBarItem]
    {
        tabTitles[0].title = "Messages"
        tabTitles[1].title = "Contacts"
    }

嘗試下面的代碼希望對您有所幫助

// MyTabBarController.h

#import <UIKit/UIKit.h>
@interface MyTabBarController : UITabBarController
@end

// MyTabBarController.m

#import "MyTabBarController.h"
@interface MyTabBarController ()

@end

@implementation MyTabBarController

- (void)viewDidLoad {[super viewDidLoad];
[self customizedTabbar];
}
-(void)customizedTabbar
{
 UITabBar *tabBar = self.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];

UIImage *img1= [[UIImage imageNamed:@"t1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIImage * img1_sel= [[UIImage imageNamed:@"t1_sel"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

   UIImage *img2= [[UIImage imageNamed:@"t2"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIImage *img2_sel= [[UIImage imageNamed:@"t2_sel"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

 item0 = [item0 initWithTitle:@"Tab1" image:img1 selectedImage:img1_sel];

item1 = [item1 initWithTitle:@"Tab2" image:imag2 selectedImage:img2_sel];
 }

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM