-3

我希望你能帮我解决我的实际问题:

我已经建立了一个带有导航控制器的新项目。对于项目的表格视图,我为其添加了一个新类,称为“TableViewController.h”和“TableViewController.m”。

在这个类中,我在 .ha 属性中声明了一个 NSString 以从其他类访问它,如下所示:

    @property (strong, nonatomic) NSString *testString;

在 .m 中,我将其合成如下:

    @synthesize testString;

现在我在表视图控制器的 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath-Method 中设置如下:

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
     testString = @"Hello, World!";
    }

现在为下一个视图创建了一个新的 UIViewController 类,当我点击一个单元格时它应该出现(到目前为止所有这些都有效)。在这个名为“SecondView”的 UIViewController 中,我导入了 TableViewController 的 .h 文件。此外,我在 SecondView.m 中有此代码:

    -(void) viewDidLoad
    {
     [super viewDidLoad];
     TableViewController *demoObject = [TableViewController alloc] init]
     NSLog (@"Teststring is: %@" [demoObject.testString]);
    }

现在,当我启动模拟器时,我得到这个输出:Teststring is: (null)

当我在 TableViewController 中对 testString 进行 NSLog 记录时,我得到“Hello, World”,但为什么它没有“转移”到 SecondView 类并生成所需的输出?

4

2 回答 2

4

您正在将字符串记录在 中,该字符串在表视图的方法viewDidLoad中设置之前很久就被调用了。didSelectRow您还应该使用self.testString = ...

于 2012-11-11T20:11:28.183 回答
0

您如何期望数据“传输”?你必须通过它..在 tableView:didSelectCellAt:row (你推第二个视图)你必须说:

2ndView.testString = self.testString;
于 2012-11-11T20:34:19.460 回答