2017-09-25 16 views
2

iOS 11とXcode 9のbarbuttonitemsとタイトルは表示されなくなりました。私がこのようにカスタムビューを追加しようとしているかどうかは関係ありません:そのようなBarButtonItemsとタイトルがiOS 11に表示されない

let backButton = UIButton.init(frame: CGRect(x: 0, y: 0, width: 180, height: 32)) 
     backButton.setImage(UIImage(named: "back_icon")?.withRenderingMode(.alwaysTemplate), for: .normal) 
     backButton.tintColor = UIColor.white 
     backButton.addTarget(self, action: #selector(backAction), for: .touchUpInside) 
     backButton.backgroundColor = UIColor.clear 
     backButton.titleLabel?.font = UIFont(name: SWMainHelper.sharedInstance.mediumFont, size: 18) 
     backButton.setTitleColor(UIColor.white, for: .normal) 
     backButton.setTitle("Go back", for: .normal) 

     backButton.sizeToFit() 

     backButton.titleEdgeInsets = UIEdgeInsets(top: 0, left: 16, bottom: 0, right: 0) 

     backButton.frame.size.width += 16 

     let negativeButtonSpace = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil) 
     negativeButtonSpace.width = -16 

     self.navigationItem.setLeftBarButtonItems([negativeButtonSpace, UIBarButtonItem(customView: backButton)], animated: true) 

か、単に標準UIBarButtonItems:Xcodeのでは

let add = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped)) 
     add.tintColor = UIColor.white 
     let play = UIBarButtonItem(title: "Play", style: .plain, target: self, action: #selector(playTapped)) 
     play.tintColor = UIColor.white 
     navigationItem.rightBarButtonItems = [add, play] 

8すべてがうまく働きました。

答えて

0

xCode9 IDEにアップデートする際に同じ問題が発生しました。私はUINavigationBar.appearanceを使用してこれを解決することができた:

let buttonItem = UIButton.appearance(whenContainedInInstancesOf: [UINavigationBar.self]) 
    buttonItem.setTitleColor(.black, for: .normal) 
    buttonItem.setTitleColor(.gray, for: .disabled) 
+0

残念ながら私の問題は解決しませんでした。とにかくありがとう! –

0

奇妙なことは一切添加していないボタンは(あなたがこの添付写真参照できる)ということ、です。

enter image description here

0

私は、上記の同じ問題とどれも固定することを持っていました。 私がしたのは、titleViewwidthを設定して、すべてうまくいっていたことです!

EDIT:

すべてUIViewControllernavigationItem性質を持っており、すべてのnavigationItemはオプションtitleViewを持っています。参考のため

https://developer.apple.com/documentation/uikit/uinavigationitem/1624935-titleview

私の場合、私は、カスタムtitleViewを使用していたと私はAppleが新しいナビゲーションバーのレイアウトをサポートするためのAPIを変更するのでそれは、問題の原因だと思います。

0

この問題はXcode 9でコンパイル中に発生します.UIBarButtonItemはautolayputも使用しているためです。下は動作させるためのコードです。

UIButton *leftCustomButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 100)]; 

     [leftCustomButton.widthAnchor constraintEqualToConstant:100].active = YES; 
     [leftCustomButton.heightAnchor constraintEqualToConstant:35].active = YES; 
     [leftCustomButton setTitle:@"TEST" forState:UIControlStateNormal]; 
     [leftCustomButton.titleLabel setFont:[UIFont boldSystemFontOfSize:16.0]]; 
     [leftCustomButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
     UIBarButtonItem * leftButtonItem =[[UIBarButtonItem alloc] initWithCustomView:leftCustomButton];   
     [self.navigationItem setRightBarButtonItems:@[leftButtonItem]]; 
関連する問題