久しぶりにiPhoneアプリを触ってみた。遷移元のコントローラ別にナビゲーションアイテムの表示を制御するというのをやったらこんな感じになった。
class XyzController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 前の画面コントローラー
let prev = self.parentViewController
if (( prev?.isEqual(CdeController)) != nil) {
// CDEから来たとき
}
if (( prev?.isEqual(DefController)) != nil) {
// DEFから来たとき
self.navigationItem.hidesBackButton = true
var stuImg = UIImage(named: "stu.png")?.imageWithRenderingMode(.AlwaysOriginal)
var stuBtn = UIBarButtonItem(image: stuImg, style: .Plain, target: self, action: "ShowWindow")
self.navigationItem.setRightBarButtonItem(stuBtn, animated: false)
}
}
}
これ自体は難しくないんだけど、検索したらいろんなやり方があって、objective-cのコードとかも出てきて、どこに何を書いたらいいのかわからなくなる。
Swiftポケットリファレンスを見ながらやるとなぜか頭がスッキリするのか、サクサク進んだ。
わからない→検索→わからない
だったのが
わからない→ポケットリファレンスを読む→書いてない→検索→わかる
となった。何でも書いてるわけではない。
ついでにnavigationItemの右ボタンをセットするとかもぱっとできた。