2012年6月3日日曜日

UIPickerViewで選択したtitleを表示させる方法!iphoneアプリの作りかた(objective-c)

















UIPickerViewで、選択した行のテキストを
表示させる方法をご紹介します。

上の画像でいうと、
11111
222222
などを選択したら、その数字を表示させる方法をご紹介します。

まずは、UIPickerViewを表示させるため、
.hファイルにUIPickerViewDelegate,UIPickerViewDataSourceの
デリゲートを追加し、UIPickerViewを用意します。

そして、UIPickerViewにテキストを表示させるため、
NSMutableArrayを用意します。

【.hファイルの中身】
-----

#import <UIKit/UIKit.h>

@interface XXXX : UIViewController<UIPickerViewDelegate,UIPickerViewDataSource> {
NSMutableArray *activities;
UIPickerView *picker;
}

@end
------


次は.mのファイルの方です。
【.mのファイルの中身】
1、表示させるテキストを指定します。
------
- (void)viewDidLoad {
    [super viewDidLoad];

    activities = [[NSMutableArray alloc] initWithObjects:
    @"11111"
    @"222222"
    @"33333"
    @"4444"
    nil];
}

------

2、今回は、列の数が1つなので、return 1を指定します。
------
//設定する列の数をreturnで返します。
- (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;
}
-------

3、次は列の中の行数を指定します。(0から始まるので、注意しましょう。)
今回は、activitiesで指定したテキストの数を数えて、その分だけ表示させています。
-------
- (NSInteger) pickerView: (UIPickerView*)pView
  numberOfRowsInComponent:(NSInteger) component {
  return [activities count];
}
-------

4、列(componentの値)、行(rowの値)に対する表示するものを設定します
ここもactivitiesで指定したテキストを数えて、その分だけのテキストを表示します。
------
- (NSString*)pickerView: (UIPickerView*)pView
   titleForRow:(NSInteger) row forComponent:(NSInteger)component {
   return [activities objectAtIndex:row];
}
-------

5、選択したテキストを表示させるアクションを指定します。
(今回はUIViewPickerの右上にある完了ボタンに以下のアクションを指定しました。)
-------
// 完了ボタンに、以下のメソッドを結びつけます。
-(void)done:(UIButton*)button{
   NSIndexPath* indexPath = [NSIndexPath indexPathForRow:contents.count   inSection:0];

//選択した行のテキストをmessageに代入します。
NSString *activity = [activities objectAtIndex: [picker selectedRowInComponent:0]];
NSString *message = [[NSString alloc] initWithFormat: @"%@", activity];

//選択した行のテキストをアラートで表示させています。
//messageに代入されているので、messageを表示させれば大丈夫です。
UIAlertView* alert = [[[UIAlertView alloc] init] autorelease];
alert.message = message;
[alert addButtonWithTitle:@"OK"];
[alert show];


}

-------

ぜひお試しくださいー◎





0 件のコメント:

コメントを投稿