UISearchBar代替UINavigationController UINavigationBar

Kev*_*tre 3 iphone cocoa-touch interface-builder

我有一个UITableViewControllerUISearchDisplayController(和UISearchBar),其被包含在UINavigationController作为根元素.是否可以配置它以便UISearchBar出现代替UINavigationBar?我不认为隐藏导航栏会起作用,下一个屏幕(按下)需要它可见(这会产生一个奇怪的动画故障).

我基本上会选择像App Store搜索标签这样的屏幕.

我上传了一个现在看起来如何的截图:

默认配置 选择配置

ine*_*cii 6

这是我的解决方案:
您不需要隐藏UINavigationBar,而是可以将UISearchBar合并到UINavigationBar中.

在YourClass.m文件中:
1.添加UISearchBar属性
2.将UISearchBar添加到viewDidLoad部分的NavigationItem中.码:

@interface YourClass ()
@property (weak, nonatomic) IBOutlet UISearchBar *searchBar;
@end

@implementation YourClass
- (void)viewDidLoad 
{
  [super viewDidLoad];

  // Reveal cancel button in UISearchBar.
  searchBar.showsCancelButton = YES;

  // Add UISearchBar as titleView of the UINavigationBar.
  self.navigationItem.titleView = searchBar;
}
Run Code Online (Sandbox Code Playgroud)

最后,不要忘记编辑.xib文件.只需在UINavigationBar中添加UISearchBar对象,并将UISearchBar的引用插座连接到File的Owner.祝好运!