用上了Storyboard,方便快捷,但是也带来了很多新问题,在实际使用场景中,肯定比demo要复杂的多,所以经常需要storyboard+codes共同完成UI的逻辑,这就遇到一个问题,想要实现自己的SearchDisplayController,仿照UISearchDisplayController,那么searchBar就要用原配的,当激活的时候,需要把searchBar以及searchResultTableView,一起上移到navigationItem的位置,尝试多次,无果。
navigationItem是一个NSObject的派生类,所以基本无法简单通过.supperView操作,所以用最简单的办法IBOutlet里面View然后一步步找supper,最终发现navgationItem里面的view就是navigationBar,这个navigationBar和UITableViewController的tableView加在同一个父view上面,那么情况就简单了,只要找到UITableView的父view就OK,比如是通过navigation push或者tabviewController tab的,就用parentViewController,如果是containView的话,就去上一级viewController找。