ueo6110r5's blog

iPhoneアプリをつくったり...

Storyboardを使って設定画面をつくる

ここで書いたmodalの移動は、メインの画面と設定画面を往復しているようにみえて、移動するたびに新しく画面を作っていたことがわかりました;;;;;;

と、いうわけで決して参考にはしないでください。(アクセス数少ないので大丈夫かと思いますが…)

 

↓こちらと…

http://ga29.blog.fc2.com/blog-entry-43.html 

↓こちらを、とてもとても参考にさせていただきました。

http://ga29.blog.fc2.com/blog-entry-48.html

 

ありがたい限りです。

 

それにしてもmodalって…なんなんでしょう…。

 

 -----------------------------------

 

ほとんどのアプリにある設定画面。

あれ、Tableが使われていてなにげに面倒そうで後回しにしていたのですが、メインの処理がだいたいできたので、重い腰を上げてちゃんとした設定画面に取り組むことにしました。

で、おもいっきり詰まりました。

解説書とか見ても、それぞれの機能を単体で動かすことは載っていますが、メインの処理があって設定があって…というような全体的なつくりとしては、、説明されてないように思います。それぞれの機能をつないで使えばいいってことだと思いますが、そこが自分にとっては難しくて試行錯誤でした。

 

前置きが長くなりましたが、今回も貴重な情報をいただきました。


 

たまめも(tech) Twitter

2012-01-04

[]StoryBoardを使ってNavigationController+TableViewController(XCode4.2/iOS5)Add Star

 

http://d.hatena.ne.jp/ar_tama/20120104/1325665506


 
■どんなものをつくるか
SingleView Applicationのプロジェクトで、メイン画面と設定画面、という簡単なつくりのアプリを想定します。

Use StoryboardとUse Automatic Reference Countingはチェック入れておきます。

 

■TableViewControllerを追加してViewを用意

StoryboardにはViewControllerがひとつある状態なので、そこにTableViewControllerを追加します。

右の表示列のObjectsにあるTableViewControllerをドラッグすればOKですね。

可変である必要がないのでContentをStaticに、馴染みある見た目になるようStyleをGroupedにしておきます。

f:id:ueo6110r5:20120716032254p:plain

 

次にそのTableViewControllerを選択したままの状態で、一番上のメニューのEditorを選び、Embed In>Navigation Controllerを実行します。

f:id:ueo6110r5:20120716031517p:plain

そうするとTableViewControllerにNavigationBarがつくので、Titleを「設定」に変えたり、Tableの見せ方も変えたりと整えます。

またNavigationBarにBarButtonItemを追加して、StyleをDoneにします。

f:id:ueo6110r5:20120716031735p:plain

 

さらにTableViewControllerを2つ追加して、ViewControllerにToolbarとButtonも追加します。このButtonは設定画面を呼び出すためのものです。

↓こんな状態に。

f:id:ueo6110r5:20120716032556p:plain

 

 ■それぞれのviewを接続

controlを押しながらドラッグしてつなぎます。

↓こんな感じです。

f:id:ueo6110r5:20120716032743p:plain

 つなぐとき、つなぎ方を聞かれるのでメイン画面と設定画面はmodal、設定画面内の移動はPushにします。

 

■完成!!

これでシュミレータで動くものができあがりました。

当然中身をつくらなければなりませんが、Storyboardでここまでつくれるというのは…わかってさえいえれば^^;素晴らしいですね〜。

丸一日かかりました…。

 

■おまけ

modalの画面遷移の見せ方は↓ここで変えることができます。

f:id:ueo6110r5:20120716033323p:plain