Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 298 - Split View Controller - prepareForSegue()

Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide
質問 : Swiftで遊ぼう! - 252 - FaceViewプロジェクト始動 - Swiftで遊ぼう! on Hatena

今日はSegueのコーディングをします。

Segueのコーディングもある意味、定型化されていて覚えておくべきでしょう。ボタンを配置したメインのViewControllerにコーディングをしていきます。

class ViewController: UIViewController
{

}

このクラスの中にprepareForSegueとタイプしていくとコーディングのための補完機能が働きます。
f:id:yataiblue:20150503084109j:plain
これを選べば自動的にoverrideのキーワードが付いてコードを入力する準備状態になります。
f:id:yataiblue:20150503084210j:plain

そして「定型文」を入力します。

override func prepareForSegue(segue: UIStoryboardSegue, 
                              sender: AnyObject?) {
    if let ivc = 
    segue.destinationViewController as? 
            ImageViewController {
        if let identifier = segue.identifier {
            switch identifier {
                case "Earth":
                    ivc.imageURL = DemoURL.NASA.Earth
                    ivc.title = "Earth"
                case "Cassini":
                    ivc.imageURL = DemoURL.NASA.Cassini
                    ivc.title = "Cassini"
                case "Saturn":
                    ivc.imageURL = DemoURL.NASA.Saturn
                    ivc.title = "Satrun"
            default: break
            }
        }
    }
}

これで準備はできたのですが、このままラン(Cmd + R)してもスタンフォード大学の風景が出たままになっています。

というのも作成されるImageViewControllerのviewDidLoad()内にある次のコードを消す必要があります。

if image == nil {
    imageURL = DemoURL.Stanford
}

これでSegueが動きます。

Earthボタンを押すと

f:id:yataiblue:20150503085443j:plain

バックしてCassiniボタンを押すと

f:id:yataiblue:20150503085544j:plain

巨大な画像の一部しか表示されていないのです。

ここでスクロールビューが必要になるということです。

今日はここまで。