首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UINavigationController TitleView -需要澄清

UINavigationController TitleView -需要澄清
EN

Stack Overflow用户
提问于 2013-07-12 16:26:31
回答 1查看 219关注 0票数 0

好吧,有一件事我真的不明白。

我有一个导航控制器(在AppDelegate.m中创建)作为选项卡栏控制器(在AppDelegate.h中创建)中的第一项:

代码语言:javascript
复制
self.tabBarController.viewControllers = @[tabOneNavigationController, viewController2, viewController3, viewController4, viewController5];

在另一个类中,我通过以下方式访问此tabOneNavigationController:

代码语言:javascript
复制
AppDelegate *apd = (AppDelegate *) [[UIApplication sharedApplication] delegate];
UINavigationController *navtab1 = [apd.tabBarController.viewControllers objectAtIndex:0];

如果我想改变navtab1导航栏的背景,我会这样写:

代码语言:javascript
复制
[navtab1.navigationBar setBackgroundImage:navigationBackgroundImage forBarMetrics:UIBarMetricsDefault]; 

但对于更改titleView,我只看到过使用以下命令的示例:

代码语言:javascript
复制
self.navigationItem.titleView = ...

但是如何更改navtab1的titleView呢?

示例:我有一个自定义的TableViewCell,其中包含一个按钮,当该按钮被单击时,它应该更改navtab1的titeView (在本例中,self显然没有navigationItem属性。

EN

回答 1

Stack Overflow用户

发布于 2013-07-12 16:41:33

下面是使用UINavigationController委托方法,此代码可能对您的情况有所帮助:

代码语言:javascript
复制
#pragma mark -
#pragma mark - UINavigationController Delegate Methods

- (void)navigationController:(UINavigationController *)navigationController  willShowViewController:(UIViewController *)viewController  animated:(BOOL)animated
{
    UINavigationBar *morenavbar = navigationController.navigationBar;
    UINavigationItem *morenavitem = morenavbar.topItem;
    morenavitem.titleView = myCustomeView; // Add Here your custom UIView.
    morenavitem.rightBarButtonItem.tintColor = [UIColor blackColor];

}

在上面的方法中,您还放入了NavigationBar的图像/颜色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17610639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档