Swiftで遊ぼう! - 699 - Multithreading and Text Field 3
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
- Table View実装チュートリアルをXcode7.3で解説
- Core Data シンプルチュートリアル
- 私の本業、オフィシャルなブログ-> Life-LOG
講義8の内容も目新しいことは無いのですが、いざ自分でコーディングしようとすると固まってしまいます。iPadで動かす時にDetailViewControllerの上部にタイトルを表示させるために再びNavigationControllerを組み込みます。
Developing iOS 9 Apps with Swift - Free Course by Stanford on iTunes U
NavigationViewControllerを組み込む時に注意しなければならないのが、セグエ先が変化してしまう所です。少し前に同様のコーディングをしました。覚えていますか? 同じ事を自分でコーディングしようとすると見事に忘れてしまっていてできませんでした(T_T) コードを見れば直ぐに思い出すのに、なかなか記憶に定着してくれません。繰り返すしかないけど、覚える事が多すぎて繰り返すタイミングをなかなか短縮できません。
CassiniViewControllerクラスコーディング外の1番下に次のコードを加えます。
extension UIViewController { var contentViewController: UIViewController { if let navcon = self as? UINavigationController { return navcon.visibleViewController ?? self } else { return self } } }
セグエのコードも変わります。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == Storyboard.ShowImageSegue { if let ivc = segue.destinationViewController.contentViewController as? ImageViewController { let imageName = (sender as? UIButton)?.currentTitle ivc.imageURL = DemoURL.NASAImageNamed(imageName) ivc.title = imageName } } }
これでiPadで開いて、DetailViewControllerの上部にタイトルの表示もできました。
次にマルチスレッドを実装するのですが、fetchImage()メソッドの呼ぶタイミング調整の説明がありました。2年前の記事に加筆したのでそちらを参考にして変更します。
今日はここまで。