【问题标题】:Issues passing JSON value through prepareForSegue通过 prepareForSegue 传递 JSON 值的问题
【发布时间】:2013-10-26 07:12:34
【问题描述】:

我有一个连接到网络服务器的简单应用程序,网络服务器返回一个 JSON 值。

我正在尝试将 JSON 值从 ViewController1 发送到“linkController”,但是当我将发件人发送到 ViewController2 时,发件人值为 null?

这是我的代码:

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"linkControllerSegue"]) {
        linkController *lc = [segue destinationViewController];
        lc.introString =  sender;

    }
}

这是我的 linkController.h 文件的一部分:

    @interface linkController : UIViewController
{
    // succes view outlets
    IBOutlet UILabel *short_url;
    IBOutlet UILabel *full_url;
    UIDataDetectorTypes *json;


}

@property (weak, nonatomic) NSDictionary *introString;

还有我的 linkController.m 文件:

@synthesize introString;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSLog(@"%@", introString);
}

正在通过代码调用segue:

[self performSegueWithIdentifier:@"linkControllerSegue" sender:nil];

viewDidLoad 方法中的 NSLog 返回:(null)。

是不是我做错了什么?

非常感谢,

彼得

【问题讨论】:

  • 你如何称呼 Segue?通过代码还是通过故事板?
  • 代码,查看我的更新
  • @PeterStuart 你在按下 UIButton 吗?
  • 我按下一个按钮,它调用了几个方法,然后调用了segue
  • 但是 segue 没有连接到按钮。 @AbdullahShafique

标签: ios xcode null segue sender


【解决方案1】:

试试:

 lc.introString =  short_url.text;

代替:

 lc.introString =  sender;

【讨论】:

  • 仍然得到响应为空。你收到我的其他评论了吗?该按钮未链接到 segue。
  • @PeterStuart 好的,那么什么时候调用 segue?
  • 方法内部。转场是调用转场的代码在问题中:)
  • @PeterStuart 好的,您要传递的数据在哪里(标签文本,NSString)
  • 我要传递的数据是一个JSON字符串。如果我放置 NSLog(@"%@", sender);在 prepareForSegue 中,NSLog 返回该 JSON 数组。如果我试图将它传递给另一个控制器,另一个控制器会将它作为空值返回。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多