質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.77%

作成したViewController の問題

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 686

northpotato

score 37

xcode, Objective-C の初心者です。
アプリのメイン画面から、設定画面に移り、今のところ
2つのスライダーと一つのスイッチを配置しています。
ここで設定した y_value_set, r_value_set を
メイン画面でも使用するため、サンドボックスを
使おうとしています。

最初の図にありますように、storyboard 上には
配置され、問題ないように思えます。
しかし、一番下の図にありますように、
r_slider_change(二つ目のスライダー) と scr_save_switch_change の
定義が見つかりませんとエラー表示されます。

設定画面用に、 SetViewController というのを作り
以下、header file と method file 、
です。

どなたかご教示頂けましたら、幸いです。
宜しくお願い致します。

//  SetViewController.h
//  iScol-16_04
//  Created by   on 2016/07/08.
//  Copyright © 2016年  . All rights reserved.
//
#import <UIKit/UIKit.h>
@class SetViewController;
@interface SetViewController: UIViewController

@end
//  SetViewController.m
//  iScol-16_04
//  Created by   on 2016/07/08.
//  Copyright © 2016年  . All rights reserved.
//
#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>
#import "ViewController.h"
#import "SetViewController.h"

@interface SetViewController()

//ラベルのプロパティ定義
@property (weak, nonatomic) IBOutlet UILabel *y_value_set;
@property (weak, nonatomic) IBOutlet UILabel *r_value_set;

//スライダーのプロパティ定義
@property (weak, nonatomic) IBOutlet UISlider *y_slider;
@property (weak, nonatomic) IBOutlet UISlider *r_slider;

//スイッチのプロパティ定義
@property (weak, nonatomic) IBOutlet UISwitch *scr_save_switch;

// スライダーのChangedイベントアクションと接続する
- (IBAction)y_slider_change:(UISlider *)sender;
- (IBAction)r_slider_change:(UISlider *)sender;

// スイッチのChangedイベントアクションと接続する
- (IBAction)scr_save_switch_change:(UISwitch *)sender;

// 設定を保存する
- (void)saveDefault;

@end

@implementation SetViewController

// アプリ起動時に実行される
+ (void) initialize
{
    // 初回起動時の初期値データ
    NSMutableDictionary *appDefaults = [[NSMutableDictionary alloc] init];
    [appDefaults setValue:@"5" forKey:@"y_slider"];
    [appDefaults setValue:@"10" forKey:@"r_slider"];
    [appDefaults setValue:@"YES" forKey:@"switchValue"];
    // ユーザーデフォルトの初期値に設定する
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults registerDefaults:appDefaults];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

// ビューが表示される前にスライダーとスイッチをセットする
- (void)viewWillAppear:(BOOL)animated
{
    // 保存されているNSUserDefaults オブジェクトを読み込む
    NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
    // 保存しておいた値にスライダーをセットする
    _y_slider.value = [myDefaults integerForKey:@"y_slider"];

    _r_slider.value = [myDefaults integerForKey:@"r_slider"];
    // 保存しておいた値にスイッチをセットする
    _scr_save_switch.on = [myDefaults boolForKey:@"switchValue"];
//  if (_scr_save_switch.on) {
//        _scr_save_switch.text = @"ON";
//    } else {
//        _switchLabel.text = @"OFF";
    }

// 設定値をユーザーデフォルトに保存する
- (void)saveDefault
{
    NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
    // スライダーの数値をユーザーデフォルトに保存する
    [myDefaults setInteger:_y_slider.value forKey:@"y_slider"];
    [myDefaults setInteger:_r_slider.value forKey:@"r_slider"];

    // スイッチのBOOL値をユーザーデフォルトに保存する
    [myDefaults setBool:_scr_save_switch.on forKey:@"switchValue"];
    // ユーザーデフォルトに即座に保存する
    [myDefaults synchronize];
}

// スライダーの値をラベルに表示する
- (IBAction)y_slider_change:(id)sender {
    _y_value_set.text = [NSString stringWithFormat:@"%f", _y_slider.value];
    _r_value_set.text = [NSString stringWithFormat:@"%f", _r_slider.value];

    // 値を保存する
    [self saveDefault];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

イメージ説明

イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

以下の2つのメソッドが宣言だけされていて、実装が書いていないのでワーニングが出ていると思います。
メソッドの実装を@implementationに書いてください。

- (IBAction)r_slider_change:(UISlider *)sender {

}

- (IBAction)scr_save_switch_change:(UISwitch *)sender {

}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/25 17:21

    ご回答、ありがとうございます。
    ご指摘の部分にプログラムをいれたら、所定の動作が可能となりました。
    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る