我的故事板中有几个UIViews,当然,我可以使用segue在它们之间切换。最初这很好用: notenKurse是一个NSMutableArray,kurse1Outlets是我的UITextFields的插座集合。
int counter = 0;
for (UITextField *tf in kurse1Outlets) {
NSMutableString *t = [NSMutableString stringWithFormat:@"%@", [notenKurse objectAtIndex:counter]];
NSLog(@"Object at index %i is %@", counter, [notenKurse objectAtIndex:counter]);
if ([t isEqualToString:@"42"]) {
[t setString:@""];
}
[tf setText:t];
NSLog(@"UITextField in slot %i should now display %@", counter, t);
counter++;
}
我的所有UITextField都显示存储在数组中的值。但是如果我去另一个视图(让我们假设我有一个Button;))改变一些东西,然后回到原来的UIView上面的代码仍然被执行,并且数组中有不同的值(这应该是是)。我可以在日志中看到。但是愚蠢的UITextField并没有显示任何内容。既没有以前的内容,也没有新的文本。但为什么?日志清楚地表明t是它应该是的,所以错误必须是写入文本字段,因此我猜这是一个出口问题......
答案 0 :(得分:2)
无法保证您的折扣系列的订单。它非常像NSDictionary,而不是NSArray - 保证订单。迭代这种集合将为不同的设备/人/月相产生不同的结果。
当我使用这样的集合时,我倾向于设置'标签',然后通过对标签进行分类来重新排序viewDidLoad时的插座集合。
self.calendarDayImageViews = [_calendarDayImageViews sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if ([(UIView *)obj1 tag] < [(UIView *)obj2 tag]) {
return NSOrderedAscending;
}
else if([(UIView *)obj1 tag] > [(UIView *)obj2 tag]){
return NSOrderedDescending;
}
else{
return NSOrderedSame;
}
}];
答案 1 :(得分:1)
您可以通过
输出tf的NSLog(@ “%@”,TF);
检查tf是否为空
答案 2 :(得分:0)
好的,我找到了。我忘了发布一些东西,所以我的UITextFields在数组排序之前就已经设置好了。我的错!