我已经成功解析了两个xml文件,并将它们存储在主视图控制器中的NSDictionary中。现在,当我想将两个文件数据发送到目标视图控制器时,它不起作用。我一次只能传递一个文件,目标视图控制器中的两个标签只能填充一个文件数据,而不是两者。我还创建了两个NSXml文件实例。
要从主视图控制器将数据传递到目标视图控制器,我正在执行此操作
[[segue destinationViewController] setDetailItem:[ _suraDict valueForKey:[_indexArray objectAtIndex:[indexPath row]]]];
[[segue destinationViewController] setDetailItem2:[ _transDict valueForKey:[_indexArray2 objectAtIndex:[indexPath row]]]];
在详细视图控制器中,我有setDetailItem和setDetailItem2
- (void)setDetailItem:(id)newDetailItem
{
if (_detailItem != newDetailItem) {
_detailItem = newDetailItem;
[self configureView]; }
if (self.masterPopoverController != nil) {
[self.masterPopoverController dismissPopoverAnimated:YES];
} }
- (void)setDetailItem2:(id)newDetailItem2
{
if (_detailItem2 != newDetailItem2) {
_detailItem2 = newDetailItem2;
[self configureView];}
if (self.masterPopoverController != nil) {
[self.masterPopoverController dismissPopoverAnimated:YES];
}}
将数据填充到标签
cell.contentTextView.text = [_detailItem objectAtIndex:indexPath.row];
cell.transView.text = [_detailItem2 objectAtIndex:indexPath.row];
答案 0 :(得分:0)
你可以尝试这样的事情。如果要一次性发送两个文件,则在目标View Controller中声明两个具有正确数据类型的变量(例如file1和file2)。像这样的东西,
@property (nonatomic,strong) NSString* file1;
@property (nonatomic,strong) NSString* file2;
现在在源视图控制器中,实现此方法,
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"yourSegueIdentifier"])
{
DestinationViewController *destController = [segue destinationViewController];
destController.file1 = @"file1_Data";
destController.file2 = @"file2_Data";
}
}
在这种方法中,基本上你是从源视图控制器本身设置两个文件的内容,因此,你只需要使用这些变量来访问目标视图控制器中的值。