標籤:default tab 更換 tail art 而且 code elf cte
用繼承自UINavigationController與UITabbarController 建立類,將前者設定為RootViewController,出現了一個問題,navigetionController的title不顯示,在controller裡面怎麼設定都不顯示,原因是這個樣子的:title這個屬性實際上是屬於UIViewController而不屬於UINavigationController。所以,這個屬性是從UIViewController上面繼承過來的。而不是UINavigationController上面的名字。由於UINavigationController屬於容器,所以最少需要一個RootController。然後在RootController的viewDidLoad設定title而不是在UINavigationController的subclass中設定。而且viewDidLoad設定的title是統一顯示的,導航視圖控制的UIViewController的title都是一樣的,我的解決方案是:將邏輯更換,UITabbarController設定為RootViewController,
1 -(void)addTage:(Class)controller addName:(NSString *)name addImage:(NSString *)image addSelectImage:(NSString *)selectImage 2 3 { 4 5 6 7 UIViewController *vc = [[controller alloc] init]; 8 9 UINavigationController *cityNav = [[UINavigationControlleralloc]initWithRootViewController:vc];10 11 cityNav.tabBarItem.image = [UIImage imageNamed:image];12 13 cityNav.tabBarItem.selectedImage = [UIImage imageNamed:selectImage];14 15 cityNav.navigationBar.backgroundColor = [UIColor blueColor];16 17 cityNav.tabBarItem.title = name;18 19 cityNav.navigationBar.barStyle = UIBarStyleDefault;20 21 cityNav.navigationBar.barTintColor = [UIColor cyanColor];22 23 [self.navArray addObject:cityNav];24 25 26 27 }28 29 30 31 self.tabBarController.viewControllers = self.navArray;32 33 34 self.window.rootViewController = self.tabBarController;
好貼--iOS-關於UINavigationController的title不顯示問題