-2

因此,我查看了一堆 stackoverflow 答案,但似乎都没有帮助。也许这是一个特例?到目前为止,这是我的代码:

所以我将一个字符串分配给在另一个视图控制器中声明的属性。

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

     FinalRead *readings = [_fetchedResultsController objectAtIndexPath:indexPath];
     FinalReadingViewController *detailViewController = [[FinalReadingViewController alloc] init];

     detailViewController.lover = [NSString stringWithFormat:@"%@", readings.a1];
     detailViewController.lover2 = [NSString stringWithFormat:@"%@", readings.a2];
     detailViewController.monies = [NSString stringWithFormat:@"%@",readings.a3];
     detailViewController.monies2 = [NSString stringWithFormat:@"%@", readings.a4];
     detailViewController.healthy = [NSString stringWithFormat:@"%@", readings.a5];
     detailViewController.healthy2 = [NSString stringWithFormat:@"%@",readings.a6];

     [self.navigationController pushViewController:detailViewController animated:YES];

 }

然后在下一个视图控制器中,我将字符串分配给另一个视图控制器中的另一个属性:

- (IBAction)loveClicked:(id)sender {

    LoveDetailViewController *love = [[LoveDetailViewController alloc] init];


    NSString *stringLove1 = self.healthy;
    NSString *stringHealth2 = self.healthy2;

    stringLove1 = love.loverly;
    stringLove2 = love.loverly2;

    [self.navigationController pushViewController: love animated:YES];
}

当我到达第三个视图控制器时,值出现为(null)。有任何想法吗?

4

5 回答 5

3

你应该试试:

love.loverly = stringLove1;
love.loverly2 = stringLove2;

代替

 stringLove1=love.loverly ;
 stringLove2=love.loverly2;
于 2013-10-24T07:08:02.177 回答
2

如果我正确理解了您的代码,那么您会以错误的方式进行分配:

stringLove1 = love.loverly;
stringLove2 = love.loverly2;

应该

love.loverly = stringLove1;
love.loverly2 = stringLove2;
于 2013-10-24T07:01:48.853 回答
0

看来你混淆了分配顺序

stringLove1 = love.loverly;
stringLove2 = love.loverly2;

你应该使用

love.loverly = stringLove1;
love.loverly2 = stringLove2;
于 2013-10-24T07:02:01.033 回答
0

在你的 loveClicked 方法中,它应该是

love.loverly = stringLove1;
love.loverly2 = stringLove2;
于 2013-10-24T07:02:12.873 回答
0

像这样在 SecondViewController 中首先声明属性

 @property NSString * str;

然后在SecondViewController中合成。

@synthesize str;

然后转到您的 FirstViewController 在 .h 文件中声明一个字符串。

NSString * str1;

然后像贝洛代码一样通过..

 str1=@"abcd";
 SecondViewController * svc=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
 svc.str=str1;
 [self.navigationController pushViewController:svc animated:YES];

然后将 str 记录在 SecondViewController.m 文件中

NSLog(@"%@",str);

// 输出为 abcd..

按照这种方式

于 2013-10-24T07:11:18.077 回答