Objective と iPad アプリは初めてです。別のクラス/ビュー コントローラーで既に使用している配列を表示しようとしています。アクセスしようとしている配列は「MainMenuScreen.m」にあり、その配列を「ScoresScreen.m」という別のクラスで使用したいと考えています。オンラインで検索したところ、セグエと呼ばれるものが戻ってきたようです? 例を調べていましたが、エラーが発生し続け、何をすべきかわかりません。確かに、別のクラスから配列を取得して表示する簡単な方法が必要ですか? 「ScoresScreen.m」の冒頭でこれを実行しようとしました-「MainMenuScreen.m」をインポートしましたが、そこから配列を呼び出そうとするとエラーが発生します。私のコードはすべて機能しています。他のクラスから配列を取得してコードにプラグインするだけです。あなたが私のためにコードを書いてくれるとは思っていません。しかし、別のクラスの配列を使用する方法を教えてください。前もって感謝します
これはScoresScreen.hのコードです
#import <UIKit/UIKit.h>
@interface ScoresScreen : UIViewController<UITableViewDataSource, UITableViewDelegate>{
NSMutableArray *scoresArray;
}
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@end
これは ScoresScreen.m コードです =
#import "ScoresScreen.h"
#import "MainMenuScreen.h"
@interface ScoresScreen ()
@end
@implementation ScoresScreen
NSMutableArray *TestScoresArray;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
TestScoresArray = [[NSMutableArray alloc] init];//test data
[TestScoresArray addObject: [NSMutableArray arrayWithObjects:@"Name : Bob",@" | Score : 134", nil]];//testData
[TestScoresArray addObject: [NSMutableArray arrayWithObjects:@"Name : Roger",@" | Score : 12",nil]];//testData
[TestScoresArray addObject: [NSMutableArray arrayWithObjects:@"Name : Ben",@"| Score : 34",nil]];//testData
[super viewDidLoad];
for(NSMutableArray *m in TestScoresArray)
{
NSLog(@"%@%@", m[0],m[1]);
}
}
- (void)addNewScore
{
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return 6;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"myCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NSLog(@"%@",scoresArray);
NSString *continent;
NSMutableArray *country = [scoresArray objectAtIndex:indexPath.row];
continent =[NSString stringWithFormat:@"%@ %@",[country objectAtIndex:0],[country objectAtIndex:1]];
cell.textLabel.text = continent;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
- (void)viewDidUnload {
[self setTableView:nil];
[super viewDidUnload];
}
@end
これは MainMenuScreen.h のコードです
#import <UIKit/UIKit.h>
@interface MainMenuScreen : UIViewController
- (IBAction)PlayGameBT:(id)sender;
- (IBAction)ViewScoresBT:(id)sender;
-(void)AddNewScore :(NSString *)userName :(int)score;//for PlayGame see .m
@end
これは MainMenuScreen.m のコードです
#import "MainMenuScreen.h"
#import "PlayGame.h"
#import "ImageTest.h"
@interface MainMenuScreen ()
@end
@implementation MainMenuScreen
//---------------------------------------------------------------------------------
//------------------------------------Variables------------------------------------
PlayGame *playGame;//PlayGameObject
NSMutableArray *gameDataArray;//Game Data Array (A array storying multable ImageTest Objects)
NSMutableArray *scoresArray;//<-------This need to go to view scores
//---------------------------------------------------------------------------------
//----------------------------------Constructors-----------------------------------
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
scoresArray = [[NSMutableArray alloc] init];
[scoresArray addObject: [NSMutableArray arrayWithObjects:@"Bob",[NSNumber numberWithInt:134],nil]];//testData
[scoresArray addObject: [NSMutableArray arrayWithObjects:@"Roger",[NSNumber numberWithInt:12],nil]];//testData
[scoresArray addObject: [NSMutableArray arrayWithObjects:@"Ben",[NSNumber numberWithInt:34],nil]];//testData
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
//---------------------------------------------------------------------------------
//----------------------------------Add New Score----------------------------------
//a setter Method so Play Game can add the user name and score to the scoresArray
-(void)AddNewScore :(NSString *)userName :(int)score
{
//adds user name and score to the array
if (scoresArray != nil)
{
/*NSMutableArray *nameAndScore = [[NSMutableArray alloc] init];
[nameAndScore addObject:userName];
[nameAndScore addObject: [NSNumber numberWithInt:score]];//int needs to be converted before storing in an array
[scoresArray addObject:nameAndScore];*/
[scoresArray addObject: [NSMutableArray arrayWithObjects:userName,[NSNumber numberWithInt:score],nil]];
for(NSMutableArray *m in scoresArray)
{
NSLog(@"%@%@", m[0],m[1]);//prints out the array in logs to make sure it is working
}
}
}