【问题标题】:UINavigationController within a UITabBarController, setting the navigation controller titleUITabBarController 中的 UINavigationController,设置导航控制器标题
【发布时间】:2012-03-05 15:53:45
【问题描述】:

在我的应用程序中,我在 UITabBarController 中有一个 UINavigationController。一切正常,但是我无法为导航控制器设置标题。我尝试了几种不同的方法并在 Google 上四处搜索,但似乎没有解决此问题的方法。

任何帮助将不胜感激。

提前谢谢你。

山姆

【问题讨论】:

  • 您当然应该在视图控制器中指定视图控制器的标题,然后导航控制器将应用正确的标题?
  • 我在视图控制器中指定标题。谢谢。山姆。

标签: iphone objective-c ios uinavigationcontroller uitabbarcontroller


【解决方案1】:

我最终找到了答案,是:

self.tabBarController.navigationItem.title = @"title";

【讨论】:

    【解决方案2】:
    self.navigationItem.title = @"Your Title"
    

    适用于各种情况。

    【讨论】:

    • 这应该可以。检查以确保 self.navigationItem 不返回 nil。如果为零,请检查您的连接。
    • 如果您是从 xib 或故事板加载,请尝试将 navigationItem 拖到您的 viewController(如果没有)
    【解决方案3】:

    对我来说,以下工作正常:

    appDelegateDidFinishLaunching:Method中初始化控制器:

    UINavigationController *navContr1;
    UINavigationController *navContr2;
    
    UIViewController *viewController1, *viewController2;
    
    viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil] autorelease];
    viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil] autorelease];
    
    
    
    navContr1       = [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease];
    navContr2       = [[[UINavigationController alloc] initWithRootViewController:viewController2] autorelease];
    
    
    self.tabBarController = [[[UITabBarController alloc] init] autorelease];
    //self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:navContr1, navContr2, nil];
    
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    

    完成此操作后,在您不同的 viewControllers initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil - 方法中您可以使用以下行更改标题:

    self.title = @"Your Title";
    

    祝你好运。

    【讨论】:

    • 不幸的是,我的应用程序已经相当深入,所以我不能使用这种确切的方法,但我的方法并没有那么不同。但是 self.title 不起作用, self.title 只是设置标签栏的标题。不过谢谢!
    • self.navigationController.title = @"new title" 怎么样?
    【解决方案4】:

    查看文档中的UIViewController 类。有一个指向UINavigationItem 的属性,然后有一个指向title 的属性。如果指向导航项的指针返回 nil,则您一定没有正确地将控制器连接在一起。

    【讨论】:

      【解决方案5】:

      self.title 始终设置 ViewController 的 rootViewController 对象的磁贴。

      如果你的viewControllerrootViewControllerUINavigationController,那么self.title 将设置UINavigationController 的标题。

      同样,如果您使用UIViewController 对象初始化了UITabViewController,那么self.title 将应用于UITabViewControllerUITabBar 索引处的标题对应按钮。

      因此说,self.title 适用于持有viewController 的对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-06
        • 2012-09-02
        • 2011-11-30
        相关资源
        最近更新 更多