将单元格上的数据传递给另一个viewcontroller

时间:2013-04-23 06:14:07

标签: ios uitableview

我有一个带有多个单元格(详细信息披露)的TableViewController,每个单元格都与唯一数据相关联(例如标题/细节)。当我单击其中一个单元格时,另一个ViewController被加载(通过pushViewController)并且应该根据单击的单元格显示数据。

简单例如:

TableViewController的每个Cell都与单独的url相关联。当我单击其中一个单元格(详细信息公开)时,包含imageview的下一个ViewController应该打开与单击的单元格的URL对应的图像。

这必须在没有故事板,非ARC

的情况下完成

你是怎么做到的?

这就是我在DidSelectRowAtIndex

中写的内容
  NSMutableString *URL= [[SubFolderData valueForKey:@"URL"]objectAtIndex:indexPath.row];
    NSLog(@"URL %@", URL);
    File *FileUrl = [[File alloc]init];
    FileUrl.Url = URL;


    DocumentManagementAppDelegate *delegate=(DocumentManagementAppDelegate *)[[UIApplication sharedApplication] delegate];
    File *FileVC=[[File alloc]initWithNibName:@"File" bundle:nil];
    self.FileController=FileVC;
    [delegate.navigationController pushViewController:FileController animated:YES];
    [FileVC release];

SubFolderData是一个数组,其中包含数据,我只检索正在执行的URL而没有任何问题

然后我创建了第二个ViewController的新实例

在这个“文件”中是第二个具有NSMutableString“Url”的ViewController

2 个答案:

答案 0 :(得分:1)

使用您自己的init方法覆盖viewController的init方法。 例如

-(id) initWithTitle:(NSString *)title
{
     [super init];
      //your code
      //strore the title in your local variable.
     return self;
}

并在创建viewController对象

ViewController *vC = [[ViewController alloc] initWithTitle:@"VC Title"];

答案 1 :(得分:0)

在文件

的.h文件中
    @interface File : UIViewController
    {
            NSString *strUploadVideoURL;
    }

    @property(nonatomic,retain) NSString *strUploadVideoURL;
    @end

在文件的.m文件中

    @synthesize strUploadVideoURL;

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
            self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
            if (self) {
                    self.strUploadVideoURL = [[NSString alloc] init];
            }
            return self;
    }

    -(void) dealloc {
            [strUploadVideoURL release];
            [super dealloc];
    }

在主视图的didselectrow方法中

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
            NSMutableString *URL= [[SubFolderData valueForKey:@"URL"]objectAtIndex:indexPath.row];
            [self.FileController setStrUploadVideoURL:URL];
            //code for push view.....
    }