UIBarButtonItem フレーム幅が 0 であるという難しい方法を見つけました。グーグルの後、ナビゲーション コントローラーのサブビューをトラバースして、左のバー ボタンの幅を見つける方法を見つけました。それは機能しますが、これを行うにはもっとクリーンな方法が必要なようです。
この方法を使用したためにアプリが拒否される理由はありませんよね?
UIView *leftBarButtonView = nil;
for (UIView* v in self.navigationController.navigationBar.subviews) {
if ([[v class].description isEqualToString:@"UINavigationButton"]) {
if (leftBarButtonView==nil) {
if (v.frame.origin.x > 0.0)
leftBarButtonView = v;
} else if (v.frame.origin.x < leftBarButtonView.frame.origin.x && v.frame.origin.x>0.0) {
leftBarButtonView = v; // this view is further right
}
}
}