搜索栏不包含导航栏iOS

时间:2016-01-04 11:25:33

标签: ios uisearchbar uisearchcontroller

我有一个视图控制器(FirstViewController),它推送另一个包含搜索控制器的视图控制器(SecondViewController)。 SecondViewController中的搜索栏是xib文件中的IBOutlet。现在,当用户点击搜索栏时,它也会覆盖导航栏,这是预期的行为。现在我将SecondViewController作为子视图控制器添加到ThirdViewController,而ThirdViewController则由FirstViewController推送。现在,当点击搜索栏时,它不会覆盖导航栏。它只显示在导航栏下方。 添加子视图控制器的代码是直接的(在ThirdViewController中):

    self.childViewController.view.frame = self.view.bounds;
    [self.view addSubview:self.childViewController.view];
    [self addChildViewController:self.childViewController];

在FirstViewController中:

[self.navigationController pushViewController:self.thirdViewController
                                                 animated:YES];

其中thirdViewController是FirstViewController中的属性。

我有两个问题: 1.如何纠正上述行为? 2.点击搜索栏时会涉及一些动画。如果我希望搜索栏保持在点击状态,该怎么办?即,在这种情况下,它不会覆盖导航栏。

1 个答案:

答案 0 :(得分:0)

在secondViewcontroller中尝试此操作

- (void)viewDidLayoutSubviews
{

[super viewDidLayoutSubviews];
CGRect rect = self.navigationController.navigationBar.frame;

float y = rect.origin.y-20;
searchBar.contentInset = UIEdgeInsetsMake(y ,0,0,0);
}