将两个解析xml数据文件数据发送到目标视图控制器

时间:2014-06-19 17:14:17

标签: ios uitableview xml-parsing master-detail

我已经成功解析了两个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];

1 个答案:

答案 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";
}
}

在这种方法中,基本上你是从源视图控制器本身设置两个文件的内容,因此,你只需要使用这些变量来访问目标视图控制器中的值。