我有以下代码,它是语言选择选项的 segmentedControl。案例 0 用于英语,案例 1 用于希腊语,然后传递给 UITextView
。问题是每次我按下案例 1 或 0 的按钮时,我都必须返回到前一个 View Controller ,它是一个 TableView Controller ,然后返回到“detailViewController”以显示正确的语言。有没有办法在不在 View Controller 之间来回切换的情况下完成此操作?类似于 UITextView
的小动画或刷新或重新加载方法。
int a;
- (IBAction)languageSeg:(id)sender {
switch (((UISegmentedControl *)sender).selectedSegmentIndex) {
case 0:
a=0;
break;
case 1:
a=1;
break;
default:
break;
}
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
-(void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
UIImage *saladImage = [UIImage imageNamed:@"salad.jpg"];
UIImage *fishImage = [UIImage imageNamed:@"fish.jpg"];
[textDetail setScrollEnabled:YES];
[textDetail setContentSize:CGSizeMake(320, 190)];
//Switch the UIImages and UILabel based on item
switch (itemNumber) {
case 0:
itemName.text = @"Salad";
itemPic.image = saladImage;
self.title = @"Salads";
if (a==0){
textDetail.text = @"description in english";
}
if (a==1){
textDetail.text = @"description in greek";
}
break;
case 1:
// etc.
最佳答案
您可以在 languageSeg: 方法中更新 textView 的文本,就像您最初在 viewWillAppear: 中设置它一样:
我会创建一个单独的方法来处理语言切换,然后从 viewWillAppear 和 languageSeg 以及您需要的任何其他地方调用该方法。
例如,您的语言设置方法将包含当前位于 viewWillAppear 底部的代码:
- (void) languageSetter {
switch (itemNumber) {
case 0:
itemName.text = @"Salad";
itemPic.image = saladImage;
self.title = @"Salads";
if (a==0){
textDetail.text = @"description in english";
}
if (a==1){
textDetail.text = @"description in greek";
}
break;
case 1:
// etc.
break;
default:
// default case
break;
}
}
然后您的 viewWillAppear: 方法将如下所示:
-(void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
UIImage *saladImage = [UIImage imageNamed:@"salad.jpg"];
UIImage *fishImage = [UIImage imageNamed:@"fish.jpg"];
[textDetail setScrollEnabled:YES];
[textDetail setContentSize:CGSizeMake(320, 190)];
[self languageSetter];
}
你的 languageSeg: 方法看起来像这样:
- (IBAction)languageSeg:(id)sender {
switch (((UISegmentedControl *)sender).selectedSegmentIndex) {
case 0:
a=0;
break;
case 1:
a=1;
break;
default:
break;
}
[self languageSetter];
}
很多实现将取决于您的其余代码的设置方式和您的个人需求,但这是总体思路。
关于objective-c - segmentedControl 和 TextView 刷新/重新加载 - xcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11914694/