Это очень глупая ошибка: у Apple параметры задом наперед! Просто поменяйте местами изображение, чтобы перейти туда, где должна быть маска, и маску, чтобы перейти туда, где должно быть изображение, и все будет хорошо:
let bar = self.navigationController!.navigationBar
let sz = CGSize(20,20)
let arrow = UIImage(systemName:"arrowtriangle.left")!
let indic =
UIGraphicsImageRenderer(size:sz).image { ctx in
arrow.draw(in:CGRect(0,0,20,20)) // indicator is arrow
}
let indicmask =
UIGraphicsImageRenderer(size:sz).image { ctx in
ctx.fill(CGRect(0,0,20,20)) // mask is entire image
}
bar.standardAppearance.setBackIndicatorImage(
indicmask, transitionMaskImage: indic) // swap!