如何使导航栏的子视图随视图推送

Posted

技术标签:

【中文标题】如何使导航栏的子视图随视图推送【英文标题】:How to make navigation bar's sub view pushed with view 【发布时间】:2016-11-11 12:40:50 【问题描述】:

我的navigationBar 上有一个UISegmentedController。分段控件是使用以下代码添加的:

@property (nonatomic) UISegmentedControl *segView;
...
- (void)viewDidLoad 
    [super viewDidLoad];

    _segView = [[UISegmentedControl alloc] initWithItems:@[@"Seg1", @"Seg2"]];
    [_segView setSelectedSegmentIndex:0];
    [_segView addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    [self.navigationController.navigationBar addSubview:_segView];

当我将视图推送到navigationController 时,分段控件还在,所以最近推送的视图的标题会与分段控件重叠。

如何使分段控件与前一个视图一起被压入堆栈?

【问题讨论】:

【参考方案1】:

而不是像这样将navigationBar 中的UISegmentedControl 添加为subView 设置为titleViewnavigationItem

self.navigationItem.titleView = _segView;

【讨论】:

正是我所需要的。 :)

以上是关于如何使导航栏的子视图随视图推送的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有导航栏的 View Controller 内使用 Nav 推送 UIViewController

在动画推送和弹出时,导航项中带有搜索栏的连续视图控制器会导致视图模糊[重复]

iOS - 导航栏 - 带有另一个导航栏的内部表格视图

当导航栏是超级视图视图时,如何在导航栏后面放置视图?

如何更改特定视图上导航栏的颜色

如何在导航栏的标题项上添加专辑选择器视图