设置系统导航栏右上角按钮方法:
UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeSystem]; [rightBtn setTitle:@"XXXXXXX" forState:UIControlStateNormal]; [rightBtn setTitleColor:[UIColor colorWithRGB:@"#444444"] forState:UIControlStateNormal]; rightBtn.titleLabel.font = [UIFont systemFontOfSize:14]; [rightBtn addTarget:self action:@selector(buyHisAction) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *rightBarBtn = [[UIBarButtonItem alloc] initWithCustomView:rightBtn]; self.navigationItem.rightBarButtonItems = @[rightBarBtn];
此方法设置后在iOS10以上的系统中都可以显示正常,但唯独在iOS10系统上不显示按钮,原来是因为在iOS10上需要设置按钮的大小,只需加上一个frame的设置就可以使iOS10上正常显示:
rightBtn.frame =CGRectMake(0, 0, 90, 44);
这个变化应该是系统内对导航栏重新定义引起的,如油需要可以参考这里的设置,问题很小,但是很不容易发现原因。