每个视图重新加载时运行哪个NavigationController方法(TabBarItem)

时间:2014-09-06 17:38:16

标签: ios cocoa-touch xcode5

我有一个NavigationController,然后是一个TabBarController,它有四个标签。 我想在选择不同选项卡时在TopBar上显示不同的标题。 一种方法是将每个TabBarItem视图嵌入到导航控制器中,但由于某种原因,这似乎不正确,我想通过代码应用它。

我通过使用以下代码来完成此任务:(Products_ViewController.m自定义类)

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    UINavigationController *navCon  = (UINavigationController*) [self.navigationController.viewControllers objectAtIndex:0];
    navCon.navigationItem.title = @"Products";
}

但现在问题出现在点击标签时第一次,它会更改标题,但事实却没有。然后我在-(void)viewDidAppear{}上应用了相同的代码,但结果仍然相同。

如果单击标签栏项目或显示视图,我如何设法显示导航顶栏标题(或运行上面的代码)?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在UITabBarControllerDelegate类中实现Products_ViewController.m并使用tabBarController:didSelectViewController:方法执行代码。

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {  
         UINavigationController *navCon  = (UINavigationController*) [self.navigationController.viewControllers objectAtIndex:0];
         navCon.navigationItem.title = @"Products";
    }

viewDidLoad方法中,您必须将delegate设置为self