ios – 如何使用扩展名设置viewController的搜索栏的委托?

我创建了导航自定义类,我想装饰它,我拿了Navdecoration. swift类并声明了下面代码显示的扩展,我在这函数添加搜索条形码,我想在这个扩展中设置搜索栏代理但是它的给定错误不能指定类型’UIViewController’来键入’UISearchBarDelegate
extension UINavigationController {
 func makeBlackNavigationbar (viewController: UIViewController,animated: Bool) {

 viewController.navigationController?.navigationBar.backgroundColor? = UIColor.blackColor()
    let add = UIBarButtonItem(barButtonSystemItem: .Add,target: viewController,action: "addTapped")
    let play = UIBarButtonItem(title: "Play",style: .Plain,action: "addTapped")
   viewController.navigationItem.rightBarButtonItems = [add,play]

    let left = UIBarButtonItem(barButtonSystemItem: .Add,action: "addTapped")
    viewController.navigationItem.leftBarButtonItems = [left]

       let searchBar = UISearchBar(frame: CGRectZero)
        searchBar.placeholder = "Search"
        searchBar.delegate = viewController
        viewController.navigationItem.titleView = searchBar
}}

解决方法

您必须符合UISearchBarDelegate协议:
extension UINavigationController : UISearchBarDelegate {
   ...
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...