私はプログラミングにかなり慣れていません。練習用に非常にシンプルなiOSクイズアプリを作成しています。これが私がこれまでに成し遂げたことです:
「シングルビュー」テンプレートを使用してXcodeプロジェクトを作成しました。したがって、私はすでにappDelegateファイル、View Controller、およびView(XIBファイル)を持っています。
私のビューには、2つのUILabelと2つのUIButtonの4つのコントローラーしかありません。各ボタンはラベルとペアになっています。これらの4つのコントローラーセットアップのすべての接続があります。ユーザーが[GetaState]というラベルの付いたボタンをタップすると、そのラベルに、stateArrayというNSMutableArrayにある状態の名前を入力する必要があります。ユーザーが「GetCapital」というラベルの付いたボタンをタップすると、そのラベルに州の首都をそのラベルに入力する必要があります。
NSObjectから継承してdataModelというデータモデルを保持するObjective-Cクラスを作成しました。dataModel.mファイルで、2つの配列を作成してデータを設定しました。
ビューコントローラの.mファイルで、dataModel.hファイルをインポートしました。
私が抱えている唯一の問題は、viewControllerにdataModelファイルからデータを取得させることです。おそらく委任を使用する必要があることを読みましたが、もっと簡単にそれを行う方法を知りたいと思っています...ビューコントローラーについて何か準備ができており、データモデルファイルは相互に参照する必要がありますか?もしそうなら、コーディングはどのようになりますか?
これまでの私のコーディングは次のとおりです。
#import <UIKit/UIKit.h>
@interface onMyOwnViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *stateField;
@property (weak, nonatomic) IBOutlet UILabel *answerField;
- (IBAction)answerButton:(id)sender;
- (IBAction)stateButton:(id)sender;
@end
#import "onMyOwnViewController.h"
#import "dataModel.h"
@implementation onMyOwnViewController
- (IBAction)stateButton:(id)sender
{
NSString *myState = [stateArray objectAtIndex:0]; //this line produces an error.
[_stateField setText:myState];
[_answerField setText:@"hi"];
}
- (IBAction)answerButton:(id)sender
{
}
@end
以下は私のdataModelコーディングです:
#import <Foundation/Foundation.h>
@interface dataModel : NSObject
@property(nonatomic, strong) NSMutableArray *answerArray;
@property(nonatomic, strong) NSMutableArray *stateArray;
@end
#import "dataModel.h"
#import "onMyOwnViewController.h"
@implementation dataModel
- (id)init
{
self = [super init];
if(self){
_answerArray = [[NSMutableArray alloc]initWithObjects:@"Michigan", @"Illinios", nil];
_stateArray = [[NSMutableArray alloc]initWithObjects:@"Lansing", @"Springfield",
nil];
}
return self;
}
@end
アプリを実行すると、データモデルからデータを取得する以外はすべて機能します。再生するときは、コーディングで返信してください。