好貼--iOS-關於UINavigationController的title不顯示問題


用繼承自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;

    self.navigationItem.title

    = @"my title"; sets navigation bar title.

    

    self.tabBarItem.title

    = @"my title"; sets tab bar title.

    

    self.title

    = @"my title"; sets both of these.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM