选择行后如何将值从tableviewController传递给uiviewcontroller

时间:2013-03-19 12:28:34

标签: ios storyboard uitableview

我有下面的代码:其中Cell new是Custom cell,当用户选择一个必须转移到uiviewcontroller以显示msg的行但是我无法做到这一点时,该数组的索引对象就是索引。

这样做:我收到错误 从'UILabel *'分配给'NSString *'的指针类型不兼容

VC2.DisplayMsg.text = cell.textLabel;

displayMsg是uiviewcontroller中必须显示文本的标签。我哪里出错了?

请帮助我或建议任何其他方式将值从导航uitableviwController转移到另一个viewcontroller,选择行并在该uiviewController中显示消息。请帮助我。我很感激。

先谢谢。

完整代码:

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


Cellnew *cell = [array objectAtIndex:indexPath.row];


      ViewControllerDisplayMsg *VC2 = [[ViewControllerDisplayMsg alloc] init];

VC2.DisplayMsgtext = cell.textLabel.text;


    [self performSegueWithIdentifier:@"displayMsgSegueIdentifier" sender:self];

}

错误:

因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFString textLabel]:发送到实例的无法识别的选择器

3 个答案:

答案 0 :(得分:2)

您应该在其他NSString中定义viewController属性,并首先将表中的值分配给此字符串,最后在viewController的viewDidLoad方法中,您可以将此字符串分配给标签文本。最好将Other Controller定义为FirstController的属性。

您应该在类中更新图形元素,因为这个相应的类或控制器负责显示图形元素和图形元素。值。

<强> YourTableViewController.h

@class SecondViewController;

@property(strong,nonatomic)SecondViewController secondVC;

<强> YourTableViewController.m

self.secondVC=[SecondViewContrlller alloc]initwithNibName:@"SecondViewController" bundle:nil];
self.secondVC.stringValue= cell.textLabel.text;

<强> YourOtherViewController.h

@property(strong,nonatomic)NSString *stringValue;

<强> YourOtherViewController.m

-(void)viewDidLoad{

self.displayMsg.text=self.stringValue;

[super viewDidLoad];
}

答案 1 :(得分:1)

在UIViewController中获取NSString属性,比如说DisplayMsg: 然后在didSelectRowAtIndexPath方法中:

VC2.DisplayMsg=cell.textLabel.text;

答案 2 :(得分:1)

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
    {
        // Get reference to the destination view controller
        YourViewController *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
        [vc setMyObjectHere:object];
    }
}

此代码可以帮助您