导航控制器不将数据从tableview传递给viewcontroller

时间:2013-03-21 07:39:57

标签: ios uitableview ios5 ios6 uinavigationcontroller

Tableview的代码:

-(void)tableView:(UITableView *)tableView didselectRowAtIndexPath:(NSIndexPath *)indexPath{

    ViewControllerDisplayMsg *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"viewController3"];


    cellvalue=[array objectAtIndex:indexPath.row];
    detail.DisplayMsgString = cellvalue;
    [self.navigationController pushViewController:detail animated:YES];

    }

viewController3中的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.DisplayMsgLabel.text= self.DisplayMsgString;

}

上面的代码在打开viewcontroller3时没有将数据传递给空白。为什么数据没有通过。缺少哪些代码?

请帮助我。真的很感激帮助。

先谢谢。

2 个答案:

答案 0 :(得分:3)

您已使用

   -(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{

       }

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

       }

我希望你错误输入它,如果不是这个,请分享你的结果

答案 1 :(得分:0)

因为我从故事板中得到了segue所以没有被称为doselect方法 -

(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // test segue.identifier if needed
    ViewControllerDisplayMsg *viewController = segue.destinationViewController;
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    // set properties of viewController based on selection indexPath


    cellvalue=[array objectAtIndex:indexPath.row];

    NSLog(@"str :  %@",cellvalue);
    viewController.DisplayMsgtext = cellvalue;

}

这非常合适。如果这是正确的实施方式,我必须检查它,否则它现在正常工作。