初心者のSWIFTアプリ開発記 ©たぬきち

肥満気味になってきたので筋トレに励んでいます! プログラミング頑張ります

ついに克服!segueでの遷移・・・swiftアプリ開発

ついにviewcontroller間の遷移をマスター!?

 

過去に幾度となく悩まされてきましたが今回こそ5割くらい理解したはず!   つまりもう悩まされないo(`ω´ )o   数時間どうやればいいのかなぁーー´д` ;
なんて彷徨うことはないのである!  

 

unwindowsegue

 
f:id:egoisticYK:20150914092137p:plain
 
上記の画像のように、gameviewからresultview、そしてresultviewからはgameviewとinitialviewのどちらへも戻れるような方法を模索していました。とりあえず前の画面に戻る場合は、unwindowsegueを使うo(`ω´ )o。という認識でいたので、どちらの場合もunwindowsegueを使って見るも、思うようにいかず、、

initialviewへ戻る場合は思い通りにいくのだけれど、gameview(ゲーム画面)へ戻ると続きから始まってしまう・・・o(`ω´ )o

うーん・・・どうしたもんか!?てっきり別の画面から戻れば、当然のように最初から始まるものだと思っていましたがそんなわけないですよね。かといってunwindowsegueではなく、storyboardでポチーっとsegueをつなげると重くなるし・・・

そもそもunwindowsegueってさ・・・

func backToInitial(sender: UIStoryboardSegue){

}

こんなかんじであるじゃないですか!?アンウィンドウっていうだけあって、なにか記述したらだめなのかなぁ〜なんておもってたんですo(`ω´ )o

まぁそんなことなかったですけど

unwindowsegueは、記述しても問題なし!

なんかあまりにもレベルの低いこと書いてるけど、しょうがないよね・・・レベルが低いのだから

まぁいいや。とにかくunwindowsegueはなにも書いてはいけないなんてことはなく、なんでも?かいてよかったんだよ( ^ω^ )。

 @IBAction func backToGameView(sender: UIStoryboardSegue){
        let skView = self.view as! SKView
        var scene = skView.scene as! GameScene
        scene.setUp()
        scene.gameState = .gameReady
    
    }

上二行の記述は、viewdidload()のところでも出ていたので、

skView.presentScene(scene)

なんてやりたくなってやったんです、そうしたら二重にゲーム画面が表示されてしまった?気がしました・・・とにかく全然だめでした(´Д` )。素直に参考書に従って、シーンの初期化をする方法で落ち着きました。

感想o(`ω´ )o

変なアレンジは加えず素直に参考書通りにやるべきだった(´Д` )

なんかunwindowっていうかんじが全然しませんが(誤ったイメージ)、とにかくこんなかんじで上手くいけました。これは参考書を振り返ったらこんなことが書いてあったのですが・・・そもそも、その参考書を始め読んだときはunwindowsegueなんて使ってねーじゃねーか、ひどい初見殺しじゃねーかなんて思ってたんですけど、私がイメージしunwindowsegue(なにも記述していない空のコード)ではなかっただけで、普通に使っていましたね。

・・・なんもいえねぇo(`ω´ )o

金曜、土曜、日曜とやる気が消え失せて少しサボり気味だったので今日から頑張ります( *`ω´)