【问题标题】:tab bar item title programatically not showing in objective c标签栏项目标题以编程方式未显示在目标 c 中
【发布时间】:2012-02-11 05:58:38
【问题描述】:

我尝试以编程方式创建标签栏控制器,它可以工作,但我无法将标题设置为 ta 栏项目。运行应用程序时看不到标题。我的代码在这里。请帮帮我,什么问题?

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.

myTabBarController = [[UITabBarController alloc] init];        
view2Controller = [[testView alloc] init];   
view3Controller = [[testView2 alloc] init];   
view4Controller = [[testView3 alloc] init];   
view5Controller = [[testView4 alloc] init];   
view6Controller = [[testView5 alloc] init];   


myTabBarController.viewControllers = [NSArray arrayWithObjects: view2Controller, view3Controller,view4Controller,view5Controller,view6Controller,nil]; 
 UITabBarItem *tabItem = [[[myTabBarController tabBar] items] objectAtIndex:1];
 [tabItem setTitle:@"theTitle"];

[self.view addSubview:myTabBarController.view];    
myTabBarController.selectedIndex=0;

}

【问题讨论】:

    标签: objective-c ios xcode uitabbarcontroller uitabbaritem


    【解决方案1】:
    override func viewDidLoad() {
        super.viewDidLoad()
    
        DispatchQueue.main.async {
            self.tabBar.items?[0].title = "Title"
        }
    
    }
    

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    
        self.tabBar.items?[0].title = "Title"
    
    }
    

    【讨论】:

      【解决方案2】:
      use this code
      
      - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
      {
          self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
          if (self) {
              self.title=@"FREE BOOKS";
              self.tabBarItem.image = [UIImage imageNamed:@"first"];
          }
          return self;
      }
      

      【讨论】:

        【解决方案3】:
        - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
        {
            self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
            if (self) {
        
                // self.title = @"My Title";
            }
        
            self.title = @"My Title";
            return self;
        }
        

        在标签栏控制器的每个子视图中使用上述代码。

        这可能会有帮助。

        【讨论】:

          【解决方案4】:

          您可以设置UIViewController的标题,这反映了它何时被推入UINavigationControllerUITabBarController。但是您应该在将其放入其中任何一个之前设置标题。

          init 通常是设置标题的好地方。

          - (id)init {
              // ... other code including check for self
              self.title = @"My Title";
              return self;
          }
          

          【讨论】:

          • 我试试这个 -(id) initWithTabBar { if ([self init]) { self.title = @"tab1dir"; } 返回自我; } 但不起作用:S
          • 我也试试 - (id)init { // ... 其他代码,包括检查自我 self.title = @"My Title";回归自我; } 但还是不行
          【解决方案5】:

          Here 是从头开始的教程,它可以帮助您实现您想要实现的确切功能。下载源代码直接运行,如果标题正确,可以按照教程正确理解UITabBarController的流程。

          【讨论】:

          • 在本教程中 -(id) initWithTabBar 可以在标签栏中显示标题。我尝试了但不起作用:S
          • 我建议你下载教程并与你的代码进行比较。
          • 本教程看不到下载链接
          【解决方案6】:

          在侧视图控制器的视图中设置你的视图控制器的title将出现/消失,它将显示在你的tabbaritem中。

          【讨论】:

          • 我在viewDidLoad 中设置了它,但它不起作用,但在viewWillAppear: 中运行良好。谢谢
          猜你喜欢
          • 2012-02-14
          • 1970-01-01
          • 2016-02-19
          • 2021-09-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多