iOS13 にするとアプリ起動後だけ NavigationBar の Bar Button Item (Image) の表示がおかしくなる。
2年前、iOS11 のときにこれが AutoSizing から AutoLayout に替わったときのようだ。
iOS11 のときはボタンのサイズ修正を viewDidLoad に追加したのだが
起動直後だけそれが反映されないようだ。画面遷移して戻ってくると正常表示される。
アラートを表示させても正常表示されることがわかったので、起動直後に(サイズ修正後に)見えないアラートを表示させることにした。
if #available(iOS 13.0, *) {
let alert = UIAlertController(title: "", message: nil, preferredStyle: .alert)
let subview1 = alert.view.subviews.first! as UIView
let subview2 = subview1.subviews.first! as UIView
for subview in (subview2.subviews) {
subview.alpha = 0
}
present(alert, animated: false, completion: {
alert.dismiss(animated: false, completion: nil)
})
}
let alert = UIAlertController(title: "", message: nil, preferredStyle: .alert)
let subview1 = alert.view.subviews.first! as UIView
let subview2 = subview1.subviews.first! as UIView
for subview in (subview2.subviews) {
subview.alpha = 0
}
present(alert, animated: false, completion: {
alert.dismiss(animated: false, completion: nil)
})
}
こういう記事もあるんだけど、
メソッドとか実行場所とか変えていろいろ試したんだけど、効果がなかった。
そもそもちゃんと表示されるはずだから、普通のことをやってもダメなんだろうか?