私のアプリケーションでは、3つの言語のサポートを提供する必要があります。私のデフォルト言語は英語になります。ユーザーがコントローラーの設定で他の言語を選択すると、アプリケーション全体がその特定の言語に変更されます。このために、3つの言語すべてとそのデータを含むplistファイルを作成することにしました。現在、デフォルトの言語は英語です。ここで、LanguageControllerのplistを使用して言語を変更し、ホームコントローラーにプッシュしました。選択した言語(フランス語)の文字列がホームコントローラーで受信されませんでした。これが私のコードです、
//LanguageController.h
NSMutableDictionary *allDictElements;
NSString *selectedLanguage1;
NSArray *dummy;
@property(nonatomic,retain) NSMutableDictionary *allDictElements;
@property(nonatomic,retain) NSString *selectedLanguage1;
@property(nonatomic,retain) NSArray *dummy;
//LanguageController.m
@synthesize allDictElements,selectedLanguage1,dummy;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *path= [[NSBundle mainBundle] pathForResource:@"Language" ofType:@"plist"];
allDictElements = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSLog(@"%@allDictElements",allDictElements);
LeeValleyHomeViewController *homeController = [[LeeValleyHomeViewController alloc] initWithNibName:@"LeeValleyHomeViewController" bundle:[NSBundle mainBundle]];
if (indexPath.row ==0)
{
//bookshelf button
NSMutableDictionary *english=[[NSMutableDictionary alloc]init];
english=[allDictElements objectForKey:@"English Language"];
dummy=[english objectForKey:@"English"];
selectedLanguage1=[dummy objectAtIndex:0];
NSLog(@"english bookshelf button:%@",selectedLanguage1);
homeController.selectedLanguage = selectedLanguage1;
NSLog(@"sel lang:%@",homeController.selectedLanguage);
} else if (indexPath.row ==1) {
//bookshelf button
NSMutableDictionary *french=[[NSMutableDictionary alloc]init];
french=[allDictElements objectForKey:@"French Language"];
dummy=[french objectForKey:@"French"];
selectedLanguage1=[dummy objectAtIndex:0];
NSLog(@"french bookshelf button:%@",selectedLanguage1);
homeController.selectedLanguage = selectedLanguage1;
NSLog(@"sel lang:%@",homeController.selectedLanguage);
} else {
NSMutableDictionary *spanish=[[NSMutableDictionary alloc]init];
spanish=[allDictElements objectForKey:@"Spanish Language"];
dummy=[spanish objectForKey:@"Spanish"];
selectedLanguage1=[dummy objectAtIndex:0];
NSLog(@"spanish bookshelf button:%@",selectedLanguage1);
homeController.selectedLanguage = selectedLanguage1;
NSLog(@"sel lang:%@",homeController.selectedLanguage);
}
[self.navigationController pushViewController:homeController animated:YES];
}
このコントローラーでは、選択した言語文字列を細かく受信しています。
//LeeValleyHomeViewController.h
NSString *selectedLanguage;
@property (nonatomic,retain) NSString *selectedLanguage;
//LeeValleyHomeViewController.m
@synthesize selectedLanguage;
- (void)viewDidLoad
{
LanguageViewController lvc = [LanguageViewController alloc]init];
bookshelfbtn.titleLabel.text = lvc.selectedLanguage1;
NSLog(@"button title:%@",bookshelfbtn.titleLabel.text);
//bookshelfbtn.titleLabel.text = selectedLanguage;
}
このコントローラーでは、その文字列値を受け取っていません。私のコードの何が問題になっていますか?またはどうすればこれを行うことができますか?前もって感謝します。