Xcode

Segueで画面遷移するときの値の渡し方

prepareForSegue内で遷移先ViewControllerのpublic propertyに値をセットするやり方です。SegueのIdentifierを判別するやり方だと今後数が増えてきた時に大変そうですが基本ぽいので覚えます。スマートにやる方法は追々調べていきたいですが、今のところこれ…

StoryBoardでSegueを使った簡単な画面遷移

UITableViewを使いを表示してセルがタップされたら詳細画面に遷移。詳細画面からは一覧画面に戻れるナビゲーションができるような遷移です。 Master-Detail Applicationのテンプレート使うと一瞬で作ってくれるのですけども何が起きてるかよくわからないので…

iOS6以降でのUITableViewのセル再利用

ようやく理解できたので書きます。以前、UITableViewでのUITableViewCellの生成方法を記載しましたがiOS6以降はUICollectionViewの追加に合わせてセルの再利用の方法も追加されていました。 以前書いたセル生成 UITableViewDataSourceで実装必須なデリゲート…

NavigationControllerを追加する時の動作の違い

NavigationControllerをStoryboardに追加する際はObjectLibraryから追加するかメニューのEditor>Embed In>NavigationControllerから追加することができる。 ObjectLibrary(↑)から追加するともれなくTableViewが付属してくる。RootViewとしてTableViewを引っ…

UICollectionViewCellをdequeueReusableCellWithReuseIdentifierで生成/取得する時はStoryboard上に該当するIdentifierのUICollectionViewCellがないと落ちる

'NSInternalInconsistencyException', reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier Hoge - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' こんな感じで落…

ARC(Automatic Reference Counting)について得た知識

ARCはiOS5から導入されたメモリ管理方式でMRC(Manual Reference Counting)で管理していた部分を自動化してくれる MRCで使用していたretain、release、autoreleaseを明示的に指定するとコンパイルエラーになる 書いてあるとXcodeにこんなこと言われる ARC for…

アシスタントエディタで任意のファイルを開く

こういうマークのやつ。Optionキー押しながらファイルを選択するとアシスタントエディタで開ける。

iOS7のステータスバーは領域を占有しない

掲題の通りで、iOS7からステータスバーは領域を占有せず透過レイヤみたいな扱いになったので意識しないでオブジェクト配置するとこんなことになる。 iOS8がiOS7と同じ仕様ならもうそれに合わせちゃっていいよね。詳細! Objective-C iPhoneアプリ開発 入門ノ…

Xcodeのlldb対話型コンソールでオブジェクトを見たい

XcodeのデバッグエリアにNSLogとかが流れるコンソールがあるんだけどここではlldbコマンドが実行できる。 ブレークポイントを設置した箇所と同じスコープなのでプリントデバッグもできるしメソッド叩いたりもできる。 そんな時にそのままselfとか叩いてもエ…

Asset Catalogを使った画像管理

iOS向けアプリだとOSバージョンやデバイス毎に要求される画像サイズが異なる。 Xcode5からそれを管理する仕組みが用意されていてそれがAsset Catalog。 デフォルトでも作成されるみたいでこれだとImage.xcassetsというディレクトリがそれにあたる。 初期状態…

UIGestureRecognizerのstateプロパティで状態がわかる

ドラッグ&ドロップを感知したくなりました。ドラッグはUIPanGestureRecognizerで拾えるんですがドロップはどうすればいいんでしょうか? ドロップはドラッグが終了した時点と等しいのでUIPanGestureRecognizerのstateプロパティを見てEndedになった時がドロ…

LabelやUIImageViewはデフォルトだとタッチイベントを認識できない

アトリビュートインスペクタのInteractionの項目がデフォルトでチェックされていないので使う時はチェックする。 ピンチイン、ピンチアウトとか2本指の奴も使う時はMultiple Touchをチェックするとできるみたい。

UIGestureRecognizer Class

OverviewUIGestureRecognizer is an abstract base class for concrete gesture-recognizer classes. A gesture-recognizer object—or, simply, a gesture recognizer—decouples the logic for recognizing a gesture and acting on that recognition. When …

Storyboardでタップされたらアラートを出す処理

Tap Gesture Recognizerをビューにドロップしてアクション接続したメソッド内でUIAlertViewを使う。 Tap Gesture Recognizerはこんなの。 ドロップするとDockエリアに表示されるのでここからCtrl+ドラッグで引っ張る。 UIAlertView *alert = [[UIAlertView a…