2017-09-21 8 views
0

私はXamarinを使用して開発されたiOSアプリを持っています。今、私はそれをiOS 11に移行しようとしています。私の問題は、ナビゲーションバーのBarButtonItemのどれもがどのコントローラーでも見えないが、機能的で、タップできることです。BarButtonItemsはiOS 11では表示されません

これらのボタンアイテムの一部は、ナビゲーションアイテムをコントローラに追加することで、ストーリーボードに設定されます。それらのボタン項目のタイトルも見えません。標準的な戻るボタンです。

その他のバーボタン項目は、SetRightBarButtonItemまたはSetLeftBarButtonItemによってコード内で設定されます。私はカスタムアイコンボタンとシステム項目ボタンの両方を持っています。システム項目のボタンの例は次のとおりです。

this.NavigationItem.SetLeftBarButtonItem(new UIBarButtonItem(UIBarButtonSystemItem.Stop, (sender, e) => { ... }), true);

とカスタムアイコンボタンで別:

this.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(UIImage.FromBundle("gear"), UIBarButtonItemStyle.Plain, (sender, e) => { ... }), true);

これらのナビゲーションバーボタンアイテムを長期間問題なく働いています。 iOS 11の新しいナビゲーションバーの構造をどのように修正できますか? (ナビゲーションバーに大きなタイトルは表示されません)

+0

Xamarin.iOS 11.0.0.0を使用してVSの最終バージョンで再追加すると動作しますか? –

+0

iOS 11では、NavigationBarsはデフォルトでAutoLayoutを使用してレンダリングされるようになりました。カスタムイメージビューとそのコンテナに高さと幅のレイアウト制約を設定してみてください。 –

答えて

0

ちょうどこのようなことをしてください。

var button = new UIBarButtonItem(UIImage.FromBundle("gear"),UIBarButtonItemStyle.Plain, (sender, e) => { ... }); 

button.SetTitleTextAttributes(new UITextAttributes() 
      { 
       TextColor = UIColor.Blue, 
       TextShadowColor = UIColor.Clear 
      }, UIControlState.Normal); 

this.NavigationItem.SetRightBarButtonItem(button, true); 
関連する問題