プロフィール

カイロプラクター てん

Author:カイロプラクター てん


【趣味】
・自転車に乗って
 ヘロヘロになる事。
・カイロプラクティックで
 人を元気にする事。

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
作ったiOS App

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

iOS Singletone の使い方 勉強 #5

今回は、iOS Singletone の使い方 勉強 #4の続きでタイマー部分の制御です。

MainStoryboard.storyboardをクリックしてSecondを表示

Label 1個、Button 9個 ドラッグ&ドロップで配置します。
1302083.png
↑こんな感じ

Labelをクリックして
1302084.png
↑こんな感じにして

次は、Buttonを変更
1302085.png
↑こんな感じ

残りのButtonも変更して
1302086.png
↑こんな感じ

では、いつもの連携のおまじない。
Editorの真ん中を押して
1302066.png
SecondViewController.hにして

Labelをクリック
マウス右ボタンでドラッグ&ドロップ
1302088.png

ビュンとでてきたら

Nema にlbl_timer_time と入力して
1302089.png
Connectをクリック

自動的に記載される
1302090.png

次は、Buttonの連携
1:00のボタンをクリックして
マウス右ボタンでドラッグ&ドロップ
1302091.png

ビュンとでたら

1302092.png
Connection → Action
Name → lbl_timer_01min
Connect をクリック

自動的に記載される
1302093.png

残りのButtonも同じ要領で連携
1302094.png

こんな感じになります。

ふぅ〜、
この単純作業は、思ったより大変だなぁ〜

では、各Buttonが押されたらそれに対応した値が
lbl_timer_timeに表示されるようにしましょう。

ここをクリックして表示を切り替えて
1302019.png
SecondViewController.mをクリック

1302095.png

ずら〜りと並んでいるなぁ〜・・・。

では、めげずに

1302096.png

疲れた・・・。
処理を一つにまとめられそうだけど・・。
とりあえず、頑張ろう!

シミュレータRun!
1302097.png

成功!

では、この値をSingletoneに代入しましょう!
まずは、Singletoneで変数を作ります。
Singletone.hをクリック
1302098.png
NSInteger timer_time;
@property NSInteger timer_time;

Singletone.mをクリック
1302099.png
@synthesize timer_time;

これで、変数宣言終わりです。
残りは、各Buttonを・・・、地道に・・・。

- (IBAction)btn_timer_01min:(id)sender {
self.lbl_timer_time.text = @"1:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*1 ;
}

- (IBAction)btn_timer_02min:(id)sender {
self.lbl_timer_time.text = @"2:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*2 ;
}

- (IBAction)btn_timer_03min:(id)sender {
self.lbl_timer_time.text = @"3:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*3 ;
}

- (IBAction)btn_timer_05min:(id)sender {
self.lbl_timer_time.text = @"5:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*5 ;
}

- (IBAction)btn_timer_10min:(id)sender {
self.lbl_timer_time.text = @"10:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*10 ;
}

- (IBAction)btn_timer_15min:(id)sender {
self.lbl_timer_time.text = @"15:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*15 ;
}

- (IBAction)btn_timer_30min:(id)sender {
self.lbl_timer_time.text = @"30:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*30 ;
}

- (IBAction)btn_timer_45min:(id)sender {
self.lbl_timer_time.text = @"45:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*45 ;
}

- (IBAction)btn_timer_60min:(id)sender {
self.lbl_timer_time.text = @"60:00";

Singletone* sharedData = [Singletone sharedManager];
sharedData.timer_time = 60*60 ;
}


長過ぎぃ〜〜〜〜!!

では、これを受け取りましょう!

FirstViewContorller.mをクリックして
ここで受け取ります。
1302100.png
timer_time = 60*3;をコメントにして
下に記載します。

1302101.png
timer_time = sharedData.timer_time;
これで、timer_timeに代入されたのですが、sharedData.timer_timeの初期値が0なので
STARTを押した瞬間 マイナス表示になってしまいます。
初期値を3分にしましょう。

どこで初期値処理、しようかな〜。

せっかくなんで、Singletone.mの初期値処理に記入。
偶然動いていたTimeの方 [ AM/PM 24h切り替え ] の、sharedData.seg_time_chgも一緒に
初期値処理しましょう。
1302102.png
seg_time_chg = 0 ;
timer_time = 60 * 3; 

シミュレータRun!

Timer START!
1302103.png

成功!

でも・・・・。

これでは、Singletoneで指定した初期値がSecondViewに反映されない・・。

では、SecondViewに反映されるように処理を入れましょう。

SecondViewController.mをクリックして
- (void)viewDidLoad の所に
1302104.png
    // Singletoneの設定
Singletone* sharedData = [Singletone sharedManager];

// AM/PM 初期設定
[self.seg_time setSelectedSegmentIndex:sharedData.seg_time_chg];

// タイマー時間 初期設定
NSInteger set_timer = sharedData.timer_time;
NSInteger set_timer_min = set_timer / 60;
NSInteger set_timer_sec = set_timer - ( set_timer_min * 60 );

self.lbl_timer_time.text = [NSString stringWithFormat:@"%02d:%02d",set_timer_min,set_timer_sec];


では、シミュレータ!と
その前に ちょっと、意地悪して
Singletone.mの初期値を変更
時間表示 24h / タイマー時間を 4:56
seg_time_chg = 1 ;
timer_time = 60 * 4 + 56;
と変更して

シミュレータRun!
1302105.png1302106.png
めでたく!
成功!

今回はこれで終わり

次回は、Timerが0になったら、音を鳴らします。

*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

COMMENT

EDIT COMMENT

非公開コメント

 
検索フォーム
QRコード
QRコード
ブロとも申請フォーム
FC2カウンター
ビリリティピルズ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。