カードを表示するViewControllerを実装する
オーディオを選択されたときに、オーディオを出力しながら英文と和訳を表示するようにしたい。
英文と和訳を表示する「カード」ということで、CardViewControllerとして実装する。
今回はInterface Builderを使ってUIを作っていきたいので、nibファイルも一緒に作る。
初期化のメソッドを実装する
initWithNibNameが自動生成されているのでinitメソッドに変更する。
iPhone向けにしか考えてないから、nibファイル名は”CardViewController”に固定しておく。
|
|
- (id)init
{
// nib nameを固定にしておく
self = [super initWithNibName:@"CardViewController" bundle:nil];
if (self) {
self.navigationItem.title = @"カード";
}
return self;
} |
続きを読む
NavigationBarの背景色を好きなものに変える
UINavigationControllerのNavigationBarは背景色を自由にかえることができる。
アプリに合った色にすると見栄えも良くなるだろうか。
取りあえず仮で色を変えておく。
NavigationControllerを作っている所で変えておこう。このアプリではAppDelegateのところ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[super application:application didFinishLaunchingWithOptions:launchOptions];
AlbumListViewController *controller = [[[AlbumListViewController alloc]init]autorelease];
UINavigationController *navigationController = [[[UINavigationController alloc]initWithRootViewController:controller]autorelease];
navigationController.navigationBar.barStyle = UIBarStyleBlack;
// NavigationBarの色を変える
// 今は適当に#CF5B6Fにしておく
navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.761 green:0.333 blue:0.408 alpha:1.0];
navigationController.toolbar.barStyle = UIBarStyleBlack;
self.window.rootViewController = navigationController;
return YES;
} |
続きを読む
オーディオ一覧を表示するViewControllerを実装する
AlbumListViewControllerでアイテムを選択したときにオーディオ一覧を表示するViewControllerを実装したい。
オーディオ一覧なのでクラス名は「AudioListViewController」にしておく。
initメソッドの実装
このクラスのinitメソッドを実装する。
一覧として表示するMPMediaItemCollectionをメンバ変数として保持するので、initメソッドの引数にする。
|
|
@class MPMediaItemCollection;
@interface AudioListViewController : UITableViewController {
}
@property (nonatomic, retain) MPMediaItemCollection* collection;
- (id)initWithCollection:(MPMediaItemCollection*)collection;
@end |
続きを読む
NavigationBarのタイトル表示
AlbumListViewControllerではオーディオブックの一覧を表示するので「オーディオブック」と表示させる。
|
|
- (id)init
{
self = [super init];
if (self) {
self.navigationItem.title = @"オーディオブック";
}
return self;
} |
MediaPlayer.FrameWorkを追加
Targetの設定→Build Phases→Link Binary With LibrariesにMediaPlayer.FrameWorkを追加しておく。
iPodライブラリにアクセスするのに必要
続きを読む
Core DataはSingletonにしておく
Core Dataを有効にしてプロジェクトを作ったので、AudioCardsAppDelegateにCoreData関連の処理がデフォルトで入ってる。
ただ、Core Dataへのアクセスはこのアプリのいろんな場所で使う予定だから、Singletonパターンで別に移しておいた方がいいと思う。
NSObjectを継承したAudioCardsを追加。
|
|
#import
@interface AudioCards : NSObject {
}
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
+ (id)instance;
- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;
@end |
続きを読む