ichigoryume programming blog

プログラミングに関する備忘録。主にHTML5, C#, Swiftなど。

XCode

カスタムViewのxibファイルをStoryboard(InterfaceBuilder)で再利用する

概要 よく使う、あるいは複数配置するようなGUI部品は、別途xibファイルとViewサブクラスを用意して部品化しておけば簡単に再利用できる。 Storyboardに配置してInterfaceBuilderでプレビューすることも可能 手順 まずxibファイルを追加する。プロジェクトツ…

クラスインスタンス配列の永続化

概要 自作クラスの配列の保存と読み込みを例にしたサンプルコード サンプルコード 以下のようなクラスがあったとして class Person { var name:String = "" var age:Int = 0 init(age:Int, name:String) { self.age = age self.name = name } } このクラスを…

Media & Apple Musicへのアクセス許可を繰り返し求める方法

概要 プログラムからiTnuesライブラリにアクセスしたり、MPMusicPlayerControllerを使って曲を再生したりする場合、ユーザーに「メディアとApple Music」へのアクセスを許可してもらう必要がある。 MPMediaLibrary.requestAuthorization()メソッドをコールす…

Storyboardがうまく表示されない/クラッシュする場合の対処

~/Library/Logs/DiagnosticReports でエラーログをみると原因がわかる(ことがある)。

XCodeでどうにもビルドが成功しないときの対処法

ビルドフォルダ以下が壊れている可能性がある。 この場合、ビルドフォルダーをクリーンすると解消することがある。手順は、XCodeのメニューバーのProductをoptionキーを押しながら開き、Clean Build Folderメニューを実行する。

MPMediaQueryを使ってiTunesLibraryから曲やアルバムなどを検索する

サマリ import MediaPlayer して、MPMediaQueryクラスを使う MPMediaQueryにはalbums()やartists()などのクラスメソッドがあり、これらをコールすると検索結果としてMPMediaQueryインスタンスが得られる このインスタンスのitemsとcollectionsプロパティから…

同一Storyboard内のViewをコードで生成して表示する

サマリ StoryboradのinstantiateViewControllerメソッドでViewインスタンスを生成できる 複数のインスタンスを生成可能 やり方 まず、ViewControllerにStoryBoardIDをセットする 遷移元になるViewControllerで、StoryBoardIDを指定してインスタンスを生成す…

NavigationBarにタイトルとボタンを置く

サマリ NavigationBarには直接ボタンを置けない。 まずNavigationItemを置いてから、ボタンを置く。 ボタンはBarButtonItemを使う。 やり方 まずNavigationItemをViewに置く。するとViewのタイトルを設定できるようになる 次にNavigationItemの上にBarButton…

StoryboardでTableViewを使う

TableViewに表示するデータを用意するクラスを作る。 UITableViewDataSourceを継承したクラスにする。サンプル import UIKit class MyDataSource: NSObject, UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { return 5 /…

StoryboardでNavigation Controllerを使った遷移を作る

StodyboardにNavigation Controllerを追加すると箱が二つ配置されるが、 左がNavigation Controllerで、これはViewを含んでいない 右はサンプル的についてくるView Controllerで、これは削除してしまって構わない Navigation Controllerの制御対象を設定する…

Storyboard 画面遷移設定

ボタンを押したら画面遷移(コード無し) 遷移元画面上にButtonを配置し、そのButton上からCtrlを押しながら遷移先へドラッグ ポップアップしたメニューから、Action SegueのShowなどを選択 ボタンを押したら戻る(コード無し) 遷移先画面上にButtonを配置…