Objective c 确定从UITableView的detailView返回时最后选择的行
确定在UITableView中选择行时,我推送detailView。在detailView中,我设置了som数据并将其传递给Web服务。我想在推送detailView之前或者在它被取消显示时检索一些数据。根据检索到的数据,我将设置UIImage作为指示器 我想知道如何确定detailView的indexpath.row,并使用它来设置UIImage。这可能吗 我有一个UISegmentedControl,它为UITableView加载两个不同的数据源 为了进行测试,我在推送detailView时传递indexpath.row,如果应该显示UIImage,则回调UITableView类以及布尔值 但我的问题是,当UITableView加载时,indexath.row为0。 当来回更改数据源并传递indexpath.row时,指示器将显示在错误的行上 该表的两个数据源是:Objective c 确定从UITableView的detailView返回时最后选择的行,objective-c,cocoa-touch,uitableview,Objective C,Cocoa Touch,Uitableview,确定在UITableView中选择行时,我推送detailView。在detailView中,我设置了som数据并将其传递给Web服务。我想在推送detailView之前或者在它被取消显示时检索一些数据。根据检索到的数据,我将设置UIImage作为指示器 我想知道如何确定detailView的indexpath.row,并使用它来设置UIImage。这可能吗 我有一个UISegmentedControl,它为UITableView加载两个不同的数据源 为了进行测试,我在推送detailView时
if (index == 0) {
dictionary = [firstArray objectAtIndex:indexPath.row];
}
else {
dictionary = [secondArray objectAtIndex:indexPath.row];
}
然后,我为该行设置指示器(稍后将是UIImage):
当推送detailView时,didselectRowatineXpath我传入indexPath.row:
NSInteger rowIndex = indexPath.row;
[self.detailViewController initWithDetailsSelected:rowIndex:dictionary];
完成detailView后,UITableView类将接收回调:
- (void)processAttendanceSuccessful:(BOOL)successful:(NSInteger)_selectedIndex{
self.selectedIndex = _selectedIndex;
}
因此,基于布尔值,应在UITableView中为正确的行显示UIImage。
你有什么建议吗。在detailedView中设置一些值并在UITableView中显示特定行的一些数据是很常见的,但是很难找到关于这方面的好教程。
我只知道如何将数据传递到detailView,我对此没有任何问题
提前感谢大家 我将使用int的ivar,使用负值表示空选择:
@interface MyController : UIViewController {
int lastSelection;
}
...
@end
@implementation MyController
...
- (void)initWithBlablabla{
...
lastSelection = -1;
}
...
@end
然而,我认为您最好参考KVO编程指南重新考虑您的设计。在一般的MVC模式中,控制器不是存储模型状态的正确位置。不要取消选择
表视图中的行:didSelectRowAtIndexPath:
。返回此视图控制器时,只需使用UITableView
对象的indexPathForSelectedRow
方法
但从长远来看,这毫无意义。由于表视图重用了这些单元格,因此还需要记住包含图像的行。您可能需要为此维护一个数组。在这种情况下,您可以将数组和索引路径传递给详细视图控制器并在那里更新它们,或者使用委托或通知机制从表视图控制器中更新数组
@interface MyController : UIViewController {
int lastSelection;
}
...
@end
@implementation MyController
...
- (void)initWithBlablabla{
...
lastSelection = -1;
}
...
@end