这近在做项目中遇到web与原生交互业务,这里要自定义加载UIWebView控制器,因为之前在BaseNavigationController中统一做了返回按钮的显示,但是在webView有back时不能直接pop出来,所以这个控制器中要自定义返回按钮。
一开始思路是直接自定义backView,在backView中布局两个按钮,一个back,一个pop,如下代码
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backView];
注意自定义backView中要加入下面布局代码,否则按钮会发生偏移
- (CGSize)intrinsicContentSize{
return UILayoutFittingExpandedSize;
}
这个在iOS11以下是可以显示控制器的title的,但是在iOS11以上就不显示控制器的title了,iOS11导航栏除了新加入了largeTitles和searchController两个新特性,可能是加入largeTitles的原因其结构较iOS 10发生了些变化。title消失了!
要显示两个按钮既然自定义一个View不行,这时想到了
self.navigationItem.leftBarButtonItems = @[btn_1,btn_2]